爲了某種目的,我想將變量中的Window.Event對象緩存起來,稍後再使用它,但是MSIE一直告訴我這是'未知'。MSIE如何警惕'未知'?
只是在IE中運行下面的代碼,你會明白我的意思
我只是想問問怎麼能這樣呢? 我錯過了什麼嗎?
HTML:
<button id='btn'>Click!!!</button>
JS:
var eventObj = null;
document.getElementById('btn').onclick = function() {
eventObj = window.event;
setTimeout(function() {
alert(typeof eventObj.srcElement);
}, 1000)
}
EIDT 1:
我有搜索一些測試其他做,請參閱以下:
HTML:
<button id='btn1'>Click 1 !!</button>
<button id="btn2">Click 2 !!</button>
JS
var btn1EventObj = null;
document.getElementById('btn1').onclick = function() {
btn1EventObj = window.event;
alert(btn1EventObj.srcElement.id);
}
document.getElementById('btn2').onclick = function() {
alert(btn1EventObj === window.event); // output:false;
alert(btn1EventObj.srcElement === window.event.srcElement); // output: true ;
alert(btn1EventObj.srcElement.id); // output: btn2 ;
}
當BTN1一直點擊我以爲我緩存在btn1EventObj的 '事件對象',然後單擊BTN2:
test:
btn1EventObj === window.event - > false; //存在MSIE不僅是一個事件對象
btn1EventObj.srcElement === window.event.srcElement - >真 //我無法理解這樣的一個下面的。
btn1EventObj.srcElement.id - > BTN2
看到fiddle
因此上述所有告訴我,也許所有在MSIE引發的事件都是共享的屬性,並且點擊時BTN2 ,之前的所有屬性都被後面的屬性覆蓋了嗎?
我有點兒沒錯?
這裏是上述的小提琴:http://jsfiddle.net/jdkJT/ – F21 2012-07-14 09:46:37
你真的認爲編寫IE瀏覽器的代碼是一個好主意嗎?! – ThiefMaster 2012-07-14 10:42:04
@ThiefMaster不知道,作爲一個開發人員,我只是有點討厭IE,但上面應該是一個問題,我想解決和理解爲什麼。 – Lien 2012-07-14 10:45:01