прежде чем писать, я пытаюсь найти решение на этом сайте и google, но теперь удача.Переключатель onkeydown на IFRAME?
У меня проблема с IE8, этот код ниже добавляет «на лету» IFRAME и отлично работает в Chrome, Firefox и IE7.
Проблема заключается в функции keyHandler(), которая не запускается только в IE8.
Какое наилучшее решение для крепления кроссбраузера события как onkeydown?
(также Safari и Opera будет хорошо поддерживать, будет IE9 также поддерживается с этим кодом?)
P.S. я в настоящее время используют prototype.js, то Embeded 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 не работают :(Я ошибаюсь во что-то? –
Нет. Я не тестировал свой код, извините. Теперь переписано. –
Тим, ты отлично поработал, и я уверен, что ты потратил много времени, чтобы исправить , как и я, используя все доступные инструменты отладчика, но не повезло. Благодаря этому да, проблема заключалась в том, чтобы ждать загрузки фрейма. Я тестировал также и с Opera, и отлично работал. попробовал дать вам голосование, моя репутация я замедляю, поэтому я не могу, 'так вот мой маленький голос + 10';) –