国产高清在线免费观看-国产高清在线免费无码-国产高清在线男人的天堂-国产高清在线视频-国产高清在线视频精品视频-国产高清在线视频伊甸园

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發文檔 其他文檔  
 
網站管理員

Firefox中Iframe的blur與focus事件問題

admin
2013年7月11日 1:1 本文熱度 5253
 最近在做一個網站的HTML文章發布功能,用到了HTML編輯器,這個是以Iframe為基礎的編輯器(貌似網上大多的都是用iframe 的)。卻發現一個問題,IE下運行得好好的,在Firefox里卻始終不能提交更新后的數據到服務器上,找了半天原因才發現原來是在iframe的 onblur事件里面調了更新數據內容的方法,但firefox下卻沒有執行。   于是立馬開始google了一把,發現遇到問題的不是我一個人,大量的人都是在問怎么解決firefox中觸發blur和focus事件的問題。答案到是給了一大堆,卻沒一個靠譜的。有一種答案說是放到setInterval里去執行。
  1. <iframe src="about:blank" onfocus="alert('onfocus');" onblur="alert('onblur');" id="AA">
  2.             </iframe>
  3.             <script>
  4.              window.setTimeout( function(){alert(1); document.getElementById("AA").focus(); }, 0);
  5.             </script>

看了半天也沒明白這到底是怎么回事,調試了一把發現在是在第一次運行的時候在setTimeout觸發了后,確實觸發了blur事件和focus事 件,可是之后再通過鼠標點擊想觸發這兩個事件也不行,看樣子這兩個事件是有機會觸發的,也許是采用一般的方式不能吧。不過用setTimeout這種方式 太雞肋了,總不至于每次去調用setTimeout去觸發吧,我要是知道什么時候去調setTimeout了還不如直接去調用事件處理函數更好點。這種方 法也是被斃了。

  再次深度GOOGLE,發現了一個老外寫的如下代碼:

  1. <script>
  2.    function setit(){
  3.    if(document.all){
  4.    document.getElementById("myframe").attachEvent("onblur",dothis);
  5.    }else{
  6.    document.getElementById("myframe").contentWindow.addEventListener("blur",dothis,false);
  7.    }
  8.    }
  9.   
  10. function dothis(){
  11. alert("blurred");
  12. }
  13. </script>
  14. <body onload="setit()">
  15. <iframe  width="155" height="144" id="myframe"></iframe>
  16. <input />
  17. </body>
試了一下果真可以直接觸發,效果跟在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??蒆TML4.0里面body是有這兩個事件的,所以也就不難解釋為什么用腳本給iframe的contentWindow掛上事件就 可以觸發了,實際上這個事件是來自于contentWindow里面的body元素。

事情到這里還算是比較滿意了,可是想想就因為一個瀏覽器不兼容的問題導致我花了老半天時間,真的很窩火。

該文章在 2013/7/11 1:01:51 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業的專業生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業務管理,結合碼頭的業務特點,圍繞調度、堆場作業而開發的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 最新国产成人在线不卡视频 | 国产极品粉嫩福利姬萌白酱 | 无码专区一va亚洲v专区在线 | 国产精品v欧美精品∨日韩 国产精品v免费视频 | 国产成人无码一区二区在线播 | 鲁丝片a一区二区三区 | 国产亚洲成av人片在线观黄桃 | 风间由美性色一区二区三区 | 亚洲无吗精品AV九九久久 | 亚洲中文字幕丝祙制服片 | 国产成人无码视频 | 一本久久综合亚洲 | 午夜无码中文字幕影院 | 精品国产人妻一区二区三区久久 | 中文字幕人妻无码一区二区三区 | 无码专区人妻系列日韩 | 国产精品欧美久久久天天影视 | 成人午夜高潮a∨猛片 | 一区二区三区婷婷五月天 | 精产国品一二三51app | 日韩欧美三区 | 亚洲一区在线播放 | 国产av打扑克三级久久高清下载女人xxxx | 亚洲AV专区一专区二专区三 | 国产日韩精品无码区免费专区国产 | 国产一级毛片高清视频完整版 | 午夜日韩成人在线观看 | 亚洲av无码久久忘忧草 | 国产免费av一区二区亚洲视频 | 亚洲 自拍色综合图区 | 女人把腿张开叫男人桶免费视频 | 国产av成人无码精品网站 | 亚洲婷婷综合色高清在线 | 91九色网址 | 国产精品久久久久无码人妻 | 国产精品久久久无码A片 | 中文人妻av大区中文不卡 | 亚洲欧美一区二区成人片 | 内射囯产旡码丰满少妇 | 欧美亚洲另类久久综合 | 亚洲欧美一区二区三区一猛片 |