Эй У меня есть следующий код, который работает правильно, как дело с аудио событий, однако это не работает в плавающем фрейме:JS Event Listener в плавающем фрейме
var sounds = document.getElementsByTagName('audio');
/* Loop through the nodelist - this is **not** an array */
for(var i = 0; i < sounds.length; i++){
/* Get the item in your nodelist. This **is** an element. */
var sound = sounds.item(i);
/* Now add your event listener here - You can only add one at a
* time, though. So I decided to make the event a separate
* function and attach it multiple timers. */
function eventHandler(){
document.title = document.title.replace('\u25B6', '')
if (!sound.paused) {
document.title = '\u25B6 ' + document.title.replace('\u25B6 ', '')
return false;
}
}
sound.addEventListener('play', eventHandler, false);
sound.addEventListener('pause', eventHandler, false);
sound.addEventListener('ended', eventHandler, false);
}
Таким образом, я использовал следующий код, но это приходит с ошибкой: «неопределенный не является функция (оценка„iframe.contentWindow.getElementsByTagName (“аудио„)“)»
var iframes = document.getElementsByTagName('iframe'); //all iframes on page
for(var i=0; i<iframes.length; i++){
var iframe = iframes.item(i);
var sounds = iframe.contentWindow.getElementsByTagName('audio');
/* Loop through the nodelist - this is **not** an array */
for(var i = 0; i < sounds.length; i++){
/* Get the item in your nodelist. This **is** an element. */
var sound = sounds.item(i);
/* Now add your event listener here - You can only add one at a
* time, though. So I decided to make the event a separate
* function and attach it multiple timers. */
function eventHandler(){
document.title = document.title.replace('\u25B6', '')
if (!sound.paused) {
document.title = '\u25B6 ' + document.title.replace('\u25B6 ', '')
return false;
}
}
}
sound.addEventListener('play', eventHandler, false);
sound.addEventListener('pause', eventHandler, false);
sound.addEventListener('ended', eventHandler, false);
}
Привет! Просто мои два пенсов, но я думаю, вам нужно выбрать документ перед вызовом каких-либо элементов getters: 'iframe.contentWindow.document.getElementsByTagName ('audio');' - это помогает? – somethinghere