日韩欧美人妻无码精品白浆,www.大香蕉久久网,狠狠的日狠狠的操,日本好好热在线观看

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

Firefox中Iframe的blur與focus事件問(wèn)題

admin
2013年7月11日 1:1 本文熱度 5421
 最近在做一個(gè)網(wǎng)站的HTML文章發(fā)布功能,用到了HTML編輯器,這個(gè)是以Iframe為基礎(chǔ)的編輯器(貌似網(wǎng)上大多的都是用iframe 的)。卻發(fā)現(xiàn)一個(gè)問(wèn)題,IE下運(yùn)行得好好的,在Firefox里卻始終不能提交更新后的數(shù)據(jù)到服務(wù)器上,找了半天原因才發(fā)現(xiàn)原來(lái)是在iframe的 onblur事件里面調(diào)了更新數(shù)據(jù)內(nèi)容的方法,但firefox下卻沒(méi)有執(zhí)行。   于是立馬開(kāi)始google了一把,發(fā)現(xiàn)遇到問(wèn)題的不是我一個(gè)人,大量的人都是在問(wèn)怎么解決firefox中觸發(fā)blur和focus事件的問(wèn)題。答案到是給了一大堆,卻沒(méi)一個(gè)靠譜的。有一種答案說(shuō)是放到setInterval里去執(zhí)行。
  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>

看了半天也沒(méi)明白這到底是怎么回事,調(diào)試了一把發(fā)現(xiàn)在是在第一次運(yùn)行的時(shí)候在setTimeout觸發(fā)了后,確實(shí)觸發(fā)了blur事件和focus事 件,可是之后再通過(guò)鼠標(biāo)點(diǎn)擊想觸發(fā)這兩個(gè)事件也不行,看樣子這兩個(gè)事件是有機(jī)會(huì)觸發(fā)的,也許是采用一般的方式不能吧。不過(guò)用setTimeout這種方式 太雞肋了,總不至于每次去調(diào)用setTimeout去觸發(fā)吧,我要是知道什么時(shí)候去調(diào)setTimeout了還不如直接去調(diào)用事件處理函數(shù)更好點(diǎn)。這種方 法也是被斃了。

  再次深度GOOGLE,發(fā)現(xiàn)了一個(gè)老外寫(xiě)的如下代碼:

  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>
試了一下果真可以直接觸發(fā),效果跟在IE下的一樣?;剡^(guò)頭去分析了一下代碼,發(fā)現(xiàn)firefox中原來(lái)iframe上的事件掛到了iframe中的 contentWindow中去了,與真接在html元素里面寫(xiě)事件屬性相比,IE可能把iframe上的事件關(guān)聯(lián)到了contentWindow上了, 可firefox卻不是這樣的,還是各是各的。這樣帶來(lái)的問(wèn)題是firefox想要給iframe加事件只能夠用腳本去加了。
本來(lái)以為IE和firefox中對(duì)iframe的事件這部分定義不一樣,回頭去再去看看了HTML4.0中關(guān)于iframe的定義,果真是 iframe上面就沒(méi)有任何事件的定義,看來(lái)是IE順手給加上的。firefox號(hào)稱(chēng)最符合html標(biāo)準(zhǔn),那么寫(xiě)在iframe上的“事件”沒(méi)有任何響 應(yīng),自然也是合情合理的。DHTML手冊(cè)上有一句話(huà),由于沒(méi)有“window”元素,body 元素將作為下列 window 對(duì)象事件的宿主:onblur, onbeforeunload, onfocus, onload 和 onunload??蒆TML4.0里面body是有這兩個(gè)事件的,所以也就不難解釋為什么用腳本給iframe的contentWindow掛上事件就 可以觸發(fā)了,實(shí)際上這個(gè)事件是來(lái)自于contentWindow里面的body元素。

事情到這里還算是比較滿(mǎn)意了,可是想想就因?yàn)橐粋€(gè)瀏覽器不兼容的問(wèn)題導(dǎo)致我花了老半天時(shí)間,真的很窩火。

該文章在 2013/7/11 1:01:51 編輯過(guò)
關(guān)鍵字查詢(xún)
相關(guān)文章
正在查詢(xún)...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專(zhuān)業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車(chē)隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類(lèi)企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷(xiāo)售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶(hù)的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

欧美日韩精品人妻一区二区三区四区| 狠干在线观看| 日韩AV在一区二区| 最新最快亚洲国产欧美自拍| 久久久久久久av一区| 不卡A V一区二区在线观看 | 久久伊人五月婷婷综合激情| 激情五月天婷婷欧美| 三级纯黄色片| .精品久久久久久综合日本| 天天插B人人爽| 亚洲色国产| 一区二区成人a| 欧美久久久久久九九99精品| 亚洲国产性爱经典在线| 91亚洲精品一区在线| 国产精品久久久久久久免费播放 | 国产超碰香蕉| 18欧美在线| 91吃瓜在线看| 中文字幕亚洲五月天婷婷在线播放| 欧美日韩欧美网站在线观看l| 色婷婷欧美双飞| 久久九九七七午夜福利电影| 久久99精品久久久九九| 人妻AV后入| 夜夜青青av| 私人久久成人亚洲天堂| 大鸡巴999| 全球乱淫视频| 欧美精品国产自在久久出水| 国产黄片特级免费| 激情综合A| 国产日综合久久| 青草热在线观看视频| 激情在线一区啊啊| 无码AV一区二区三区四区| 免费99精品国产自在现线观看| 黄色香蕉一级视频| 中文字幕日韩欧美一区二区| 麻豆三级片在线播放国产|