event

原生js方面的兼容性问题

夙愿已清 提交于 2020-02-16 01:54:16
1.关于获取行外样式 currentStyle 和 getComputedStyle 出现的兼容性问题 我们都知道js通过style不可以获取行外样式,当我们需要获取行外样式时: 我们一般通过这两个方法获取行外样式: IE下: currentStyle Chrome,FF下: getComputedStyle(oDiv,false) 兼容两个浏览器的写法: if(oDiv.currentStyle){ alert(oDiv.currentStyle.width); }else{ alert(getComputedStyle(oDiv,false).width); } *注:在解决很多兼容性写法时,都是用if..else.. 封装一个获取行外样式的函数:(兼容所有浏览器,包括低版本IE6,7) funtion getStyle(obj,name){ if(obj.currentStyle){ //IE return obj.currentStyle[name]; }else{ //Chrom,FF return getComputedStyle(obj,false)[name]; } } 调用:getStyle(oDiv,'width'); 2.关于用“索引”获取字符串每一项出现的兼容性问题: 对于字符串也有类似于 数组 这样的通过 下标索引 获取每一项的值, var str=

js 跨浏览操作

生来就可爱ヽ(ⅴ<●) 提交于 2020-02-16 01:49:38
/* 跨浏览器添加事件绑定 obj : 需要绑定js时间的对象 type: 欲绑定的事件类型,如:click ,mounseover 等事件 不需要添加on fn : 触发的脚本 */ function addEvent(obj,type,fn){ if(typeof obj.addEventListener !='undefined'){ //W3C obj.addEventListener(type,fn,false) ; //false表示不捕获冒泡 }else{ //IE IE提供的添加事件绑定存在问题 //为了便于删除事件 特将对象绑定的事件都绑定在该对象本身上,删除的时候同样传递一个该对象即可 if(!obj.events[type]){ obj.events[type] = [] ; //创建一个存放事件处理函数的数组 //把第一次的事件处理函数先储存到第一个位置上 if(obj["on"+type]){ obj.events[type][0] = fn; } }else{ //同一个注册函数进行屏蔽,不添加到计数器中 if (addEvent.equal(obj.events[type], fn)) return false; } //从第二次开始我们用事件计数器来存储 obj.events[type][addEvent.ID++] = fn; //执行事件处理函数

js 添加事件 attachEvent 和 addEventListener 的用法

假装没事ソ 提交于 2020-02-16 01:05:36
一般我们在JS中添加事件,是这样子的 obj.onclick=method 这种绑定事件的方式,兼容主流浏览器,但如果一个元素上添加多次同一事件呢? obj.onclick=method1; obj.onclick=method2; obj.onclick=method3; 如果这样写,那么只有最后绑定的事件,这里是method3会被执行,这个时候我们就不能用onclick这样的写法了,主角改登场了,在IE中我们可以使用attachEvent方法 //object.attachEvent(event,function); btn1Obj.attachEvent("onclick",method1); btn1Obj.attachEvent("onclick",method2); btn1Obj.attachEvent("onclick",method3); 使用格式是前面是事件类型,注意的是需要加on,比如onclick,onsubmit,onchange,执行顺序是 method3->method2->method1 可惜这个微软的私人方法,火狐和其他浏览器都不支持,幸运的是他们都支持W3C标准的addEventListener方法 //element.addEventListener(type,listener,useCapture); btn1Obj

关于处理禁止图片默认拖拽行为动作

自作多情 提交于 2020-02-16 01:03:18
这样子我鼠标移动的时候,没有触发onmousemove事件绑定的函数。操作起来很别扭。。后来自己整理了一下。。一共有三个办法可以解决这个问题。。具体哪个办法更优,现在还不清楚。以后有能力判断优劣的时候再判断吧 1、document.images[i].ondragstart=function (){return false;}; 直接循环页面所有的img标签。。然后把它的ondragstart事件return false;这样子就禁止了浏览器图片的默认拖拽动作了。感觉这里要遍历所有IMG标签。。个人不喜欢用这种办法。。觉得性能不是最佳吧。主观认为而已。。 2、event.preventDefault(); 在handler.onmousedown = function(event){}函数里面加上event.preventDefault(); 该方法将通知 Web 浏览器不要执行与事件关联的默认动作(如果存在这样的动作)。例如,如果 type 属性是 "submit",在事件传播的任意阶段可以调用任意的事件句柄,通过调用该方法,可以阻止提交表单。注意,如果 Event 对象的 cancelable 属性是 fasle,那么就没有默认动作,或者不能阻止默认动作。无论哪种情况,调用该方法都没有作用。 3、this.setCapture && this.setCapture();

jQuery停止事件冒泡

主宰稳场 提交于 2020-02-16 01:00:27
event.stopPropagation(); 在jQuery中提供了stopPropagation()方法来停止事件冒泡。终止事件在传播过程的捕获、目标处理或起泡阶段进一步传播。调用该方法后,该节点上处理该事件的处理程序将被调用,事件不再被分派到其他节点。 在事件的处理中,可以阻止冒泡但是允许默认事件的发生。 <scripttype="text/javascript"> $(function(){ $("#hr_three").click(function(event){ event.stopPropagation(); }); }); <script> View Code return false; 在事件的处理中,可以阻止默认事件和冒泡事件。 <scripttype="text/javascript"> $(function(){ $("#hr_three").click(function(event){ event.stopPropagation(); }); }); <script> View Code event.preventDefault(); 它的作用是:事件处理过程中,不阻击事件冒泡,但阻击默认行为。 例如,如果 type 属性是 "submit",在事件传播的任意阶段可以调用任意的事件句柄,通过调用该方法,可以阻止提交表单。   注意,如果 Event

addEventListener和attachEvent以及element.onclick的区别

久未见 提交于 2020-02-16 00:52:56
attachEvent是ie添加事件处理程序,接收两个参数,其中事件类型名称要加"on", 可以添加多个事件处理程序,按照添加顺序相反的顺序触发; addEventListener是给非ie添加事件处理程序,接收三个参数,第一个是事件名,不需要加“on”, 第二个是绑定的函数,第三个参数是一个布尔值,是事件的方式,意思是是否使用useCatch方式, 如果是false,就使用传统的冒泡方式,如果为true,就在捕获阶段调用事件处理程序。 addEventListener可以添加多个事件处理程序,按照添加顺序触发 二者有个本质上的区别,attachEvent的事件处理程序会在全局作用域中运行,this等于window对象, 而addEventLinstener添加的事件处理程序是在其依附的元素的作用域中运行的,this等于绑定元素对象。 既然他们的this指向不同,那怎么才能实现相同的this指向呢? 如果想要实现this关键字指向相同的话,要用Function的apply或者call方法。示例代码如下: function bind(el, fn, type){ var _fn = function(){ fn.apply(el, arguments); }; window.addEventListener ? el.addEventListener(type, _fn, false

移动端页面返回强制刷新页面

[亡魂溺海] 提交于 2020-02-15 18:47:22
返回不刷新是因为,移动端浏览器为了节省流量一般返回都会去缓存,可以通过页面显示事件监听页面返回,通过event.persisted字段来判断当前页面是否是从缓存中获去的 window.addEventListener('pageshow', function (event) { //event.persisted属性为true时,表示当前文档是从往返缓存中获取 if (event.persisted) location.reload(); }); 实际测试发现,返回时页面显示事件虽然执行,但是location.reload()并没有效果,页面仍然没有刷新,尝试通过元控制当前页面不缓存,仍然失败。 <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /> <meta http-equiv="Pragma" content="no-cache" /> <meta http-equiv="Expires" content="0" /> 华为尝试发现计时器刷Nova4e不兼容,其他浏览器外部其他ok 最终代码 function reload(){ setTimeout(function() { location.reload() }, 500); } window

任务二总结

这一生的挚爱 提交于 2020-02-15 06:47:06
任务目标: 1.掌握TextView控件的使用方法及应用场景 2.掌握EditText控件的使用方法及应用场景 3.掌握Button控件的使用方法及应用场景 一.界面控件的基本结构 所有控件的基类为View,ViewGroup继承于View,它可以包含其他的View 二.TextView控件 TextView继承自View类,位于android.widget包中。 TextView控件的功能是向用户显示文本的内容,但不允许编辑。 修改TextView的显示内容、字体大小,可(1)在XML中修改某个属性的值来控制控件的表现形式,(2)通过代码获取这个控件的对象来修改其属性①View在XML中必须已配置id②通过View的findViewById(int id)修改属性 三.EditText控件 四.Button控件 Button的基本使用方法 (1)添加Button控件到XML布局文件中,也可通过程序添加 (2)处理按钮的单击事件①通过onClick属性设置处理单击事件的方法名,在Activity中实现这个方法②使用setOnClickListener添加监听器对象,可以写一个内部类,实现OnClickListener接口,在这个类中实现onClick方法,方法中写按钮单击时想做的具体工作。 五.ImageView控件 六.CheckBox控件 CheckBox的关键属性及方法:

Servlet监听器

一笑奈何 提交于 2020-02-15 00:52:27
Servlet监听器 Listener   观察者模式。   本博客中关于观察者模式的博文:    http://www.cnblogs.com/mengdd/archive/2013/02/08/2909206.html   其参考资料中列出了更多的博文。   Listener是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。   通过监听器,可以自动激发一些操作,比如监听在线的用户的数量。 常用监听接口 ServletContextListener   监听ServletContext。   当创建ServletContext时激发contextInitialized(ServletContextEvent sce);   所有的ServletContextListeners会在所有filters和servlets初始化之前收到初始化通知。   当销毁ServletContext时激发contextDestroyed(ServletContextEvent sce)。   所有filters和servlets销毁之后,ServletContextListeners才得到context销毁通知。   也即,ServletContextListeners是早出晚归型的。 ServletContextAttributeListener  

Servlet监听器

谁都会走 提交于 2020-02-14 17:41:08
Servlet监听器 Listener   观察者模式。   本博客中关于观察者模式的博文:    http://www.cnblogs.com/mengdd/archive/2013/02/08/2909206.html   其参考资料中列出了更多的博文。   Listener是Servlet的监听器,它可以监听客户端的请求、服务端的操作等。   通过监听器,可以自动激发一些操作,比如监听在线的用户的数量。 常用监听接口 ServletContextListener   监听ServletContext。   当创建ServletContext时激发contextInitialized(ServletContextEvent sce);   所有的ServletContextListeners会在所有filters和servlets初始化之前收到初始化通知。   当销毁ServletContext时激发contextDestroyed(ServletContextEvent sce)。   所有filters和servlets销毁之后,ServletContextListeners才得到context销毁通知。   也即,ServletContextListeners是早出晚归型的。 ServletContextAttributeListener