Попытка захвата console.log Сообщение с YouTube <iframe> - PullRequest
5 голосов
/ 28 февраля 2012

Видео YouTube5 по HTML <iframe> запускает сообщение console.log для различных событий, таких как загрузка рекламного баннера.Я пытаюсь программно перехватить сообщение console.log, используя JavaScript для запуска функции следующим образом:

console['log'] = function(msg){
    // Operate on msg
}

Чтобы отправить сообщение console.log на YouTube <iframe>, работает следующий метод (вот руки для иллюстративной справки):

document.getElementsByTagName('iframe')[youTubeIframe].contentWindow.console.log(msg);

Однако следующий код не работает :

document.getElementsByTagName('iframe')[youTubeIframe].contentWindow.console['log'] = function(msg){
    // Operate on msg from YouTube <iframe>
}

Я также пытался:

window.console = document.getElementsByTagName('iframe')[youTubeIframe].contentWindow.console;
console['log'] = function(msg){
    // Operate on msg
}

Что я не понимаю, так это;если я могу вызвать сообщение console.log на YouTube <iframe>, то как мне перехватить сообщение журнала консоли?Как правильно это сделать, если есть такой?

1 Ответ

3 голосов
/ 04 января 2014

В браузерах последней версии вы не можете получить доступ к какому-либо элементу внутри iFrame из другого домена, в котором находится страница, содержащая iframe, т.е. Chrome v31, Firefox v26, IE11.

Он работал на более старых версиях некоторых конкретных браузеров, но это, конечно, не будет работать кросс-браузер.


Текущие браузеры, которые соответствуют спецификации встроенного содержимого W5C HTML5 (включая iframes) не только обеспечивают политику того же происхождения, но также принимают новый атрибут sandbox, чтобы указать еще больше ограничений для iframe.

Вы можете увидеть Браузеры, которые поддерживают новый стандарт на этой странице: http://html5test.com/compare/feature/security-sandbox.html

Браузеры, которые принимают новый атрибут, также должны соответствовать политике W3C с тем же происхождением и, следовательно, не позволят вам получить доступ к объекту console (или любому другому объекту внутри iframe).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...