2016-06-01 2 views
1

У меня есть слишком примитивный вопрос, но он действительно заводит меня в орехи, потому что я не могу заставить его работать. Итак, у меня есть iframe на странице, и я хочу иметь событие doubleclick. В браузере я тестирую FireFox. Это то, что я пробовал:iframe doubleclick event не работает

var iframe = document.getElementsByClassName("cke_wysiwyg_frame")[0]; 
var iframeDocument = iframe.contentDocument || iframe.contentWindow.document; 
iframeDocument.ondblclick = function() { 
    alert("Test 1"); 
} 

и это:

iframeDocument.addEventListener("dblclick", function() { 
    alert("Test 2"); 
}); 

По какой-то странной причине он только работает, когда я открываю консоль для отладки. Когда консоль закрыта, она перестает работать.

В других браузерах, которые я пробовал - Chrome и IE - он вообще не работает. В IE, например, я пробовал:

iframeDocument.attachEvent("dblclick", function() { 
    alert("Test 3"); 
}); 

Но это не работает. Итак, что не так с этим? Почему в FF он работает с открытой консолью и перестает работать, когда он закрыт? И как заставить его работать в других браузерах? Мне стыдно!

ответ

1

Вы можете наблюдать за событием загрузки iframe. После его запуска вы можете назначить событие ondblclick для документа внутри iframe.

iframeDocument.attachEvent("onload", function() { 
    this.contentWindow.document.ondblclick = function() { alert('it work\'s'); } 
}); 
+0

Будут ли работать браузеры, кроме IE? – Jacobian

+0

Я исправил его немного, чтобы поддерживать другие браузеры, и он работает, спасибо за указание в правильном направлении! – Jacobian

+0

Извините за поздний ответ. Я никогда не тестировал это для браузеров, кроме IE. Можете ли вы опубликовать последнюю версию, она думает, что это может быть полезно для кого-то. –

Смежные вопросы