2015-12-11 5 views
1

Я строю сайт портфолио; это один пейджер с функциональностью лайтбокса. Итак, в основном я показываю объявления HTML5, которые я создал, которые я внедряю в iFrame. У этих объявлений есть звук, поэтому, когда я закрываю лайтбоксы, звук продолжает воспроизводиться. Теперь я пробовал разные методы, но безуспешно. Я тестировал один метод, который работал, где я удалил src iFrame (ОДИН iFrame, которым я назначил идентификатор). Как так:Необходимо отключить Javascript в iFrame

**HTML:** 
<iframe id="test" class="iframe-src" src="media/rogue-nation/300x250-progressive-post/index.html" width="300" height="250" style="border:none"></iframe> 

**JavaScript:** 
var test; 
var lightbox; 

test = document.getElementById('test'); 
lightbox = document.getElementById('lightbox'); 

lightbox.addEventListener("click", closeLightbox, false); 

function closeLightbox() { 
... 
test.src = "none"; 
} 

... Так что мои вопросы:

  • Что такое «лучший» способ применить этот метод к каждому плавающему фрейму в зависимости от которых один был взаимодействовали с (пробовали, но getElementsByClassName был неудачным)
  • Есть ли способ отключить скрипты в iFrame, поэтому мне не нужно использовать этот метод, так как я не так сумасшедший об этом
  • Кроме того, не отправляйте решения jQuery или не сообщайте мне использовать jQuery, так как это не поможет, потому что я пишу просто JavaScript

Заранее благодарен!

+0

вы хостинги содержания в вашем лайтбоксе на тот же домен? (выглядит так, как вы используете «media/...» as iframe src) – hampusohlsson

+0

Да, я загружаю объявления HTML5, которые я организовал в каталогах в этих iFrames. (Я загружаю index.html) –

ответ

1

Если ваш контент iframe живет в одном домене, это легко. Вы могли бы сделать что-то вроде этого, когда лайтбоксы закрываются:

function closeLightbox() { 
    // get the iframe which is playing audio 
    var iframe = document.getElementById('iframe'); 
    // make sure you can reference the audio element on the iframe 
    // e.g. with an id. 
    var sound = iframe.contentWindow.document.getElementById('sound'); 
    sound.pause(); 
    sound.currentTime = 0; 
    // then close the lightbox with some other code 
    // ... 
} 

JSBin Demo

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