07
Digg
Stumbleupon
Technorati
Delicious

IE/Firefox中怎么绑定iframe的focus与blur事件

最近在做一个网站的HTML文章发布功能,用到了HTML编辑器xheditor,这个是以iframe为基础的编辑器(貌似网上大多的都是用iframe 的)。想在iframe上绑一个blur事件,却发现一个问题,IE下运行得好好的,在Firefox里却始终不能触发。GOOGLE,发现了一个老外写的如下代码: ?View Code JAVASCRIPT1 2 3 4 5 6 7 8 9 10 11 function setit(){ if(document.all){ document.getElementById("myframe").attachEvent("onblur",dothis); }else{ document.getElementById("myframe").contentWindow.addEventListener("blur",dothis,false); } }   function dothis(){ alert("blurred"); } ?View Code HTML1 <iframe id="myframe" width="155" height="144"></iframe> 试了一下果真可以直接触发,效果跟在IE下的一样。回过头去分析了一下代码,发现firefox中原来iframe上的事件挂到了iframe中的 contentWindow中去了,与真接在html元素里面写事件属性相比,IE可能把iframe上的事件关联到了contentWindow上了, 可firefox却不是这样的,还是各是各的。这样带来的问题是firefox想要给iframe加事件只能够用脚本去加了。 本来以为IE和firefox中对iframe的事件这部分定义不一样,回头去再去看看了HTML4.0中关于iframe的定义,果真是 iframe上面就没有任何事件的定义,看来是IE顺手给加上的。firefox号称最符合html标准,那么写在iframe上的“事件”没有任何响 应,自然也是合情合理的。DHTML手册上有一句话,由于没有“window”元素,body 元素将作为下列 window 对象事件的宿主:onblur, onbeforeunload, onfocus, onload 和 onunload。可HTML4.0里面body是有这两个事件的,所以也就不难解释为什么用脚本给iframe的contentWindow挂上事件就可以触发了,实际上这个事件是来自于contentWindow里面的body元素。  

Author: jianyun
27
Digg
Stumbleupon
Technorati
Delicious

javascript 获取鼠标当前位置的通用方法

由于IE和Firefox对鼠标当前位置获取方法不同(IE为event.x|y,FF为event.pageX|Y),一般采用的是event.clientX代替两者,但当出现滚动条时event.clientX在IE和FF等其它浏览器中的表现会略有不同。下面看看prototype和YUI如何处理这个问题… prototype ?View Code JAVASCRIPT1 2 3 4 5 6 7 8 9 pointerX: function(event) { return event.pageX || (event.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft)); },   pointerY: function(event) { return event.pageY || (event.clientY + (document.documentElement.scrollTop || document.body.scrollTop)); },   YUI ?View Code JAVASCRIPT1 2 3 4 5 6 7 8 9 10 11 12 13 [...]

Author: jianyun
25
Digg
Stumbleupon
Technorati
Delicious

兼容IE,Firefox,Chrome等浏览器 : 设为首页和加入收藏夹的Javascript代码

由于chrome,safari,opara 浏览器还未支持自动 “设为首页” & “加入收藏”.  所以我们只能try, catch一下, 给个错误提示!  也算完美了. 另外ie中, 很多人也碰到过 它window.external.addFavorite.  时会报错的问题.  所以俺也只好抛出提示信息了. 加入收藏: ?View Code JAVASCRIPT1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 /* * author : 2011-04-25 jianyun * discription: add favorite */ function addFavorite(){ if (document.all){ try{ window.external.addFavorite(window.location.href,document.title); }catch(e){ alert( "加入收藏失败,请使用Ctrl+D进行添加" [...]

Author: jianyun
19
Digg
Stumbleupon
Technorati
Delicious

文本框中按Enter键触发点击Button的JS(jQuery)例子

?View Code ASP1 2 3 4 <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox> <asp:Button ID="Button1" runat="server" Text="TextBox1" OnClick="Button1_Click" /> <asp:Button ID="Button2" runat="server" Text="TextBox2" OnClick="Button2_Click"/> ?View Code JAVASCRIPT1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <script type="text/javascript" src="JS/jquery-1.4.4.js"></script> <script type="text/javascript"> $(function() { $("input[type='text']").keypress(function(evt) { evt = (evt) ? evt : [...]

Author: jianyun