精华内容
下载资源
问答
  • JS 关于button标签注意事项

    千次阅读 2017-09-06 20:54:00
    <button></button>标签在使用的时候请谨记,为它设置类型,即type=”...,这样如果表单中有多个按钮+一个提交按钮时,它将把未加type=”button”的<button>也当做提交按钮来使用,影响整体表单提

    <button></button>标签在使用的时候请谨记,为它设置类型,即type="button"或者type="submit"等,
    如果不设置,浏览器将把<button></button>提交类型默认为<button type="submit"></buton>,
    这样如果表单中有多个按钮 + 一个提交按钮时,它将把未加type="button"的<button>也当做提交按钮来使用,影响整体表单提交。

    <button></button> // 1
    <button></button> // 2
    <button></button> // 3
    <button type="submit"></button> 
    // 	点击按钮 1、2、3、均被视为 'submit' 类型按钮来提交 
    
    展开全文
  • 按钮级别的权限用的是自定义的JSP标签 3)页面菜单的管理 在添加或者修改菜单的时候增加了选择图标的功能 4)操作日志的记录和备份 采用的方法是利用aop拦截add,update方法来实现操作记录。 同时用了...
  • -启用自动加密-禁用此功能将阻止FluffyPuffin将每次下载的内容自动加密为最新密码,而是在新标签页中打开加密页面。 -删除原始下载-禁用此选项将阻止FluffyPuffin删除加密的原始下载。 支持语言:English (UK)
  • 你总是会在浏览器中打开30个以上的标签页吗?做一些例行的工作,同时需要少量的网页吗? 你有没有想过在被打断的时候能够“藏起”你的浏览会话呢?那么,我做到了。所以我做了这个小小的扩展。 点击扩展按钮跳转到...
  • 修复了图标工具栏关闭的烦恼-修复了项目标题中的html标签导致错误的问题(由v0.9.4优化引入)-添加了日期限制-添加了日历工具栏在选择日期后突然关闭的问题v0.9.6-向图标工具栏中添加了日期帮助按钮-浏览历史记录...
  • bbcode [box] 20項投票【美化】讓您的統計「動」起來 增加几种文字效果 水印标签 閃爍字強版 彩虹字体和打字机字体 在指定板块对指定会员禁言(斑竹也可操作) 隐身功能 鲜花鸡蛋...
  •  7.2.2 通过script标签绕过跨站点限制   7.2.3 后退按钮和书签功能   7.2.4 完成请求的赛跑   7.2.5 增加资源占用   7.2.6 问题解决了吗   7.3 实例:Ajax增强的相册   7.4 小结   第8章 ...
  •  7.2.2 通过script标签绕过跨站点限制   7.2.3 后退按钮和书签功能   7.2.4 完成请求的赛跑   7.2.5 增加资源占用   7.2.6 问题解决了吗   7.3 实例:Ajax增强的相册   7.4 小结   第8章 ...
  •  7.2.2 通过script标签绕过跨站点限制   7.2.3 后退按钮和书签功能   7.2.4 完成请求的赛跑   7.2.5 增加资源占用   7.2.6 问题解决了吗   7.3 实例:Ajax增强的相册   7.4 小结   第8章 ...
  • 创建Pdf时,其内容未加标签。 仅当Pdf是加标签的Pdf时,方可将注释导出到Word文档。 在这个“导航栏”右键选择“添加/编辑工具集”,中选择添加“辅助工具”里面的“添加标签到文档”就会在“导航栏”中出现下面用...

    创建Pdf时,其内容未加标签。

    仅当Pdf是加标签的Pdf时,方可将注释导出到Word文档。

    在这个“导航栏”右键选择“添加/编辑工具集”,中选择添加“辅助工具”里面的“添加标签到文档”

    就会在“导航栏”中出现下面用红色圈的“按钮”:

    点击这个以后,Acrobat就会自动识别标签并转化为“带有标签的PDF”,就不会出现你“显示的这个错误了”。希望有帮助。

    转载于:https://www.cnblogs.com/yixiaozi/p/3709955.html

    展开全文
  • asp学习笔记

    2018-09-12 15:59:10
    asp基础HTML语言 用来描述网页/网站布局的标签语言 asp.net jsp php 1/必要格式 <... <head> <title>...3/标签对 ... a 超链接 href target... form标记,实现,原因:原来是1px(数据大小)写成了英文l。
  • 其他都是一些文本面板文本框、复选框、按钮组件可以制作的。重点是如何实现这2个标签在点击下自动切换。     第一步:拖动一个动态面板组件到页面编辑区域,并设置其大小为400*360

    1. 实例截图分析
     

      淘宝的登录框主要分为了2个页面标签,淘宝会员和支付宝会员,登录者在这2个不同的标签页进行切换选择自己的登录方式,并且未选中状态层呈突出显示。其他都是一些文本面板加文本框、复选框、按钮组件可以制作的。重点是如何实现这2个标签在点击下自动切换。

     



     

    第一步:拖动一个动态面板组件到页面编辑区域,并设置其大小为400*360


     

     

    第二步:给动态面板添加2个状态:淘宝会员、支付宝会员


    1、单击右键》编辑动态面板》管理面板状态

    2、直接双击动态面板,即可弹出管理动态面板状态【常用、简单、方便】

    3、点击加号按钮,可以不断的添加状态

    4、点击第二个红色的框,可以编辑该动态面板的所有状态


     




     

    第三步:拖动一个矩形组件,并设置其坐标为0:0  大小400*360





     

    第四步:在拖动二个矩形组件,设置第一个坐标0:0  第二个坐标:200:0    大小都是 200*30


    并分别在矩形组件上编辑文字:淘宝会员、支付宝会员

     


     

    第五步:设置点击切换


    1、选中淘宝会员组件,双击【单击时】弹出用例编辑器,

    2、选中【设置动态面板状态为指定状态】

    3、选中淘宝登录框(前面给组件已经命名了)

    4、选中对应状态(淘宝会员)

    点击查看大图


    按照同样方式,设置支付宝会员到对应的动态面板状态


     

    第六步:复制该动态面板的矩形组件到支付宝会员状态


    做好上面的步骤,我们生成原型,就可以实现tab标签的切换效果,不过并不能很真切的看出切换的变化,下面我们在做一些东西,让他在切换之后,有所变化


     

    第七步:设置颜色渐变


    我们之前分析过,发现他在未选中状态是突出显示的,现在我们利用矩形的渐变,给为选中状态设置渐变色,如何设置矩形渐变,参考前面文章

     



     



     

    第八步:设置其他组件内容


    拖动一些组件到页面编辑区域,并对其文字进行编辑

     


    第九步:生成原型




     

      该案例主要掌握动态面板制作的tab切换效果,其他如组件的对其啊,大小设置啊,布局啊,不在本次教程的考虑范围之内,其他内容,大家可以凭借自己的想法去做,做的多了,就会形成一套自己制作原型的步骤和方法。

      其实在实际制作tab标签切换,如果tab页面过多,我自己都不是按照上述方法一步步走流程的,主要快速简单的去做。不过初学者还是按照流程来


    深入学习

     

    tab.jpg (5.81 KB, 下载次数: 108)

    下载附件

    AxureRP原型TAB自动切换及隐藏

    2012-7-3 00:00 上传



     

    展开全文
  • 1,比如点击某个按钮跳转(详情页面)activity,手机性能不。在跳转之前用户多次触发了点击事件就会产生两个activity。可能对于四大组件的activity ,会有人说。使用activity的启动模式 在manifest 中配置...

    短时间用户多次发出某个点击事件

    1,比如点击某个按钮跳转(详情页面)activity,手机性能不加。在未跳转之前用户多次触发了点击事件就会产生两个activity。可能对于四大组件的activity ,会有人说。使用activity的启动模式 在manifest 中配置activity  launchMode标签(singleTask ,singleTop,singleInstance )  然并不卵用。

    2,点击某个按钮弹出dialog,如果dialog 渲染比较慢 。用户并且在此刻多次点击按钮,会产生多个dialog。体验相当之差

     

    解决思路: 点击之后然后按钮在一段时间再次点击不生效。

    1,那个按钮需要防止重复点击,针对那个按钮进行处理

    那就上代码:

    private final static String TAG = "MainActivity";
    private Button btn;
    private long lastClickTime = 0;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn = findViewById(R.id.btn);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                long now = System.currentTimeMillis();
                if(now - lastClickTime >1000){
                    lastClickTime = now;
                    Log.e(TAG,"perform click!!!");
                }
            }
        });
    }

    逻辑很简单,控制点主要是在(now - lastClickTime >1000) 如果间隔不大于1s 不会执行perform click 的

     

    但是   我们岂能这点追求 ,很多情况下,项目已经是超级复杂了 ,需要对旧项目或者就模块 进行优化,防止重复点问题。

    如果一个按钮,一个按钮处理,此项工程将会边的超级繁琐,还会产生很多无关的逻辑。导致业务逻辑变得更加复杂。那我们怎么才能不修改,原有的业务逻辑就能到达控制,所有按钮的重复点击问题呢。

    既然有了需求,我们就要想办法解决。

    问题:修改一处可以达到全局修改的作用:

    解决方案:全局代理click 事件  并重新click 时间

    先说下代码层的大致思路

    1,通过全局监控activity   (方案 如下:

     a, 通过android 提供的 Application.ActivityLifecycleCallbacks  本例子选用方案 

     b,通过 android Instrumentation 这个类,监控所有的activity 生命周期)

    2, 监控 activity 上面的 view ,动态替换view 的clicklistener 

     

    上代码:

    主要实现   是在application 中实现的
    /**
     * Created by caoyanglong on 2018/8/14.
     */
    public class MyApp extends Application {
        @Override
        public void onCreate() {
            super.onCreate();
            registerActivityLifecycleCallbacks(lifecycleCallbacks);
        }
    
        private ActivityLifecycleCallbacks lifecycleCallbacks = new ActivityLifecycleCallbacks() {
            @Override
            public void onActivityCreated(Activity activity, Bundle bundle) {
                fixViewMutiClickInShortTime(activity);
            }
    
            @Override
            public void onActivityStarted(Activity activity) {
    
            }
    
            @Override
            public void onActivityResumed(Activity activity) {
    
            }
    
            @Override
            public void onActivityPaused(Activity activity) {
    
            }
    
            @Override
            public void onActivityStopped(Activity activity) {
    
            }
    
            @Override
            public void onActivitySaveInstanceState(Activity activity, Bundle bundle) {
    
            }
    
            @Override
            public void onActivityDestroyed(Activity activity) {
    
            }
        };
    
        //防止短时间内多次点击,弹出多个activity 或者 dialog ,等操作
        private void fixViewMutiClickInShortTime(final Activity activity) {
            activity.getWindow().getDecorView().getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
                @Override
                public void onGlobalLayout() {
                    proxyOnlick(activity.getWindow().getDecorView(),5);
                }
            });
        }
    
        private void proxyOnlick(View view, int recycledContainerDeep) {
            if (view.getVisibility() == View.VISIBLE) {
                boolean forceHook = recycledContainerDeep == 1;
                if (view instanceof ViewGroup) {
                    boolean existAncestorRecycle = recycledContainerDeep > 0;
                    ViewGroup p = (ViewGroup) view;
                    if (!(p instanceof AbsListView || p instanceof ListView) || existAncestorRecycle) {
                        getClickListenerForView(view);
                        if (existAncestorRecycle) {
                            recycledContainerDeep++;
                        }
                    } else {
                        recycledContainerDeep = 1;
                    }
                    int childCount = p.getChildCount();
                    for (int i = 0; i < childCount; i++) {
                        View child = p.getChildAt(i);
                        proxyOnlick(child, recycledContainerDeep);
                    }
                } else {
                    getClickListenerForView(view);
                }
            }
        }
    
        /**
         * 通过反射  查找到view 的clicklistener 
         * @param view
         */
        public static void getClickListenerForView(View view) {
            try {
                Class viewClazz = Class.forName("android.view.View");
                //事件监听器都是这个实例保存的
                Method listenerInfoMethod = viewClazz.getDeclaredMethod("getListenerInfo");
                if (!listenerInfoMethod.isAccessible()) {
                    listenerInfoMethod.setAccessible(true);
                }
                Object listenerInfoObj = listenerInfoMethod.invoke(view);
    
                Class listenerInfoClazz = Class.forName("android.view.View$ListenerInfo");
    
                Field onClickListenerField = listenerInfoClazz.getDeclaredField("mOnClickListener");
    
                if (null != onClickListenerField) {
                    if (!onClickListenerField.isAccessible()) {
                        onClickListenerField.setAccessible(true);
                    }
                    View.OnClickListener mOnClickListener = (View.OnClickListener) onClickListenerField.get(listenerInfoObj);
                    if (!(mOnClickListener instanceof ProxyOnclickListener)) {
                        //自定义代理事件监听器
                        View.OnClickListener onClickListenerProxy = new ProxyOnclickListener(mOnClickListener);
                        //更换
                        onClickListenerField.set(listenerInfoObj, onClickListenerProxy);
                    }else{
                        Log.e("OnClickListenerProxy", "setted proxy listener ");
                    }
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }//自定义的代理事件监听器
    
    
        static class ProxyOnclickListener implements View.OnClickListener {
            private View.OnClickListener onclick;
    
            private int MIN_CLICK_DELAY_TIME = 500;
    
            private long lastClickTime = 0;
    
            public ProxyOnclickListener(View.OnClickListener onclick) {
                this.onclick = onclick;
            }
    
            @Override
            public void onClick(View v) {
                //点击时间控制
                long currentTime = System.currentTimeMillis();
                if (currentTime - lastClickTime > MIN_CLICK_DELAY_TIME) {
                    lastClickTime = currentTime;
                    Log.e("OnClickListenerProxy", "OnClickListenerProxy"+this);
                    if (onclick != null) onclick.onClick(v);
                }
            }
        }
    
    }

     

    注意:上面大致思路已经说得很清楚了

    1,第一监控到view  是通过

    View.getViewTreeObserver().addOnGlobalLayoutListener

     

    2,proxyOnlick(activity.getWindow().getDecorView(),5);然后对view 的进行遍历查询

    前两步通过android 提供的api 都可以搞定

    3,找到view 的 clicklistener 并且修改为代理,没有直接的api ,这个时候需要查询view 源码

    分析  咱们先看   view.setOnClickListener()

    源码如下:

    public void setOnClickListener(@Nullable OnClickListener l) {
        if (!isClickable()) {
            setClickable(true);
        }
        getListenerInfo().mOnClickListener = l;
    }

    可以看到 getListenerInfo().mOnClickListener = l;   那就继续追踪源码:getListenerInfo().mOnClickListener

     

    根据源码看到 View 中内部类的 mOnclickListener 即为我们的设置的Onclicklistener 变量 既然知道思路了,下面的反射代码就不能理解了

     

    public static void getClickListenerForView(View view) {
        try {
            Class viewClazz = Class.forName("android.view.View");
            //事件监听器都是这个实例保存的
            Method listenerInfoMethod = viewClazz.getDeclaredMethod("getListenerInfo");
            if (!listenerInfoMethod.isAccessible()) {
                listenerInfoMethod.setAccessible(true);
            }
            Object listenerInfoObj = listenerInfoMethod.invoke(view);
    
            Class listenerInfoClazz = Class.forName("android.view.View$ListenerInfo");
    
            Field onClickListenerField = listenerInfoClazz.getDeclaredField("mOnClickListener");
    
            if (null != onClickListenerField) {
                if (!onClickListenerField.isAccessible()) {
                    onClickListenerField.setAccessible(true);
                }
                View.OnClickListener mOnClickListener = (View.OnClickListener) onClickListenerField.get(listenerInfoObj);
                if (!(mOnClickListener instanceof ProxyOnclickListener)) {
                    //自定义代理事件监听器
                    View.OnClickListener onClickListenerProxy = new ProxyOnclickListener(mOnClickListener);
                    //更换
                    onClickListenerField.set(listenerInfoObj, onClickListenerProxy);
                }else{
                    Log.e("OnClickListenerProxy", "setted proxy listener ");
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

     

    ok     这样我们的优化 就做完了,是不是很简单。我们完全不需了解对应的业务,也不需要到各个页面去修改代码,便达到了我们的优化需求。  

    展开全文
  • TweetBlock-crx插件

    2021-04-02 10:14:46
    -有一条未加标签的推文,使您非常不舒服。 -您的好朋友情绪低迷,每30秒发布一次淫荡的奴才图片,您就在工作。 安装后,TweetBlock将在每个tweet上添加一个小的“ X”按钮,这将使您可以阻止它。 被阻止的tweet以...
  • 其他都是一些文本面板文本框、复选框、按钮组件可以制作的。重点是如何实现这2个标签在点击下自动切换。 实际制作 第一步:拖动一个动态面板组件到页面编辑区域,并设置其大小为400*360 第二步:给动态面板...
  • form表单回车自动提交(禁止)

    千次阅读 2016-02-05 17:12:12
    由于我在写按钮的时候一不小心就在标签内加了一个type="submit"。就是这么一个属性导致了在任意一个输入框内键入回车表单就自动提交了。 解决方法也很简单: 第一:自己写一个按钮,自己写js去处理点击事件。
  • - 在文本编辑器中预览帖子时,固定文本不会出现在扰流标签中 - 稍微改变了插件的菜单 v.2.2.2 - 使HTML功能/选项卡/按钮重新出现! 统一一些按钮,同时使HTML编辑器出现 v.2.2.1 - 收件箱中读和已读消息之间的...
  • 打开站点管理器窗口并选中FTP站点,在右侧选择“选项”标签,单击文件存在选项下的“配置”按钮,在打开的窗口中将“使用全局设置”选项取消,这个时候我们就可以对应“下载”、“上传”和“FXP(站点对传)”之间...
  • 标签式选中改为按钮式选中 修改了文字色块的样式 调整了所有表单组的样式 增加了部份输入框组样式 列表组增加了条纹效果【JS组件】 选项标签增加了更多样式 修改了警告框的样式 增加了表单单选多选效果 表单...
  • Hover Hound和BD Industries尊重您的隐私,除了在您的个人浏览窗口中打开的newegg.com页面上的加密数据外,您无权访问任何标签信息,浏览信息或任何网站数据。 请访问我们的隐私政策:...
  • 如图,使用此模块可生成包含多个标签、图片框、超级按钮按钮(目前只有这四个组件,后期会添加更多)的自定义列表框 此图仅用于DEMO演示、更多自定义表项样式可通过自行布局生成,模块基本自动化、容错率高,即使...
  • ●在模板调用标签缓存参数后,标签没有解析。 ●前台作者详细信息页的作者作品无法按日期查询,也无法显示所有的作者作品列表。 ●子域名下的页面在IE6下用AJAX访问标签时出现JS错误。 ●添加文章勾选“是否显示...
  • OK 2,增加广告后台管理功能,调用请查看后台帮助 OK 3,修正人才首页调用标签 OK 4,修正留言首页调用标签,分别添加 标题字数 内容字数 回复字数限制来显示调用的高度!增加排序参数! OK 5,修正弹出层的显示效果,订购 ...
  • Zoomla!逐浪CMS 3.9.6.rar

    2019-05-24 16:02:16
    6.修复:内容列表--如节点允许内容页生成,则不会显示生成按钮;7.改进:内容发布过渡页效果;8.修复:内容列表--生成Html BUG,生成发布时,过滤审核内容;9.增加:通用排序页,已用于模型字段,内容,商品(支持拖动排序...
  • 您是否总会在浏览器中打开30多个标签? 您的一些例行任务是否同时需要几个网页? 您是否曾梦想过在中断时能够“隐藏”您的浏览会话? 好吧,我做到了。 因此,我做了这个小扩展。 单击扩展按钮,以跳至当前窗口中的...
  • 6、修复:内容列表--如节点允许内容页生成,则不会显示生成按钮 7、改进:内容发布过渡页效果 8、修复:内容列表--生成Html BUG,生成发布时,过滤审核内容 9、增加:通用排序页,已用于模型字段,内容,商品(支持拖动...

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 200
精华内容 80
关键字:

未加标签按钮