在發佈之前,我嘗試在本網站搜索解決方案,並通過谷歌,但現在運氣。onkeydown crossbrowser on IFRAME?
我對IE8存在問題,下面的這段代碼增加了一個IFRAME,並且在Chrome,Firefox和IE7中工作正常。
問題是keyHandler()函數不是隻在IE8中被觸發。
什麼是附加事件crossbrowser作爲onkeydown的最佳解決方案?
(也Safari和Opera將是不錯的支持,將在IE9也與此代碼支持?)
附:我目前使用的prototype.js,在嵌入式blank.htm有的CONTENTEDITABLE和正確的DOCTYPE - >(也是在主頁面的函數被調用)
我張貼下面的代碼和在此先感謝建議和提示
function addFrame() {
var editorFrame = 'myEditor', iFrame;
var newFrame = new Element('iframe', {width: '320px', height: '70px',id: editorFrame, name: editorFrame, src:'/blank.htm'});
$('container').appendChild(newFrame);
if(document.all) {
iFrame = window.frames[editorFrame];
if (window.document.addEventListener)
iFrame.document.addEventListener('keydown', keyHandler, false);
else
iFrame.document.attachEvent('onkeydown', keyHandler); // OK IE7
}
else {
// OK Firefox, Chrome
iFrame = $(editorFrame).contentWindow;
iFrame.addEventListener('keydown', keyHandler, false);
}
}
首先感謝烏拉圭回合的努力,我真的apreciated,但使用代碼'只在IE7和Firefox'工作。 Chrome和IE8不工作:(我在錯誤的東西? – 2010-08-25 17:43:56
沒有。我沒有測試我的代碼,對不起。現在重寫。 – 2010-08-25 22:51:26
蒂姆,你做了一個很好的工作,我相信你花了很多時間來修復,因爲我也是,使用所有可用的調試工具,但沒有運氣。感謝這樣做,是的,問題是等待框架加載。我也用Opera測試過,並且工作正常。真的非常感謝!! ps我試着給我一個投票我的名聲我慢了,所以我不能,'這是我的小投票+ 10';) – 2010-08-26 08:12:38