(1)
Это потому, что веб-сайт вы загружаете в вашем IFRAME в другой домен, чем тот, в котором размещается сам iframe.
Смотреть это: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Same_origin_policy_for_JavaScript
Thusly, та же политика происхождения запретит Javascript для доступа/манипулировать страницу внутри фрейма.
(2)
Существует также понятие Песочница с HTML5, этот атрибут позволяет дополнительные ограничения на содержание, которое может появиться в инлайн кадре. Маркеры являются: позволяют-же-происхождения, позволяют-скрипты и т.д.
Дополнительная информация: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe
Пожалуйста, проверьте, если ваша IFrame является песочнице?
(3)
Затем, есть заголовок ответа HTTP, X-Frame-Options
, который может быть использован, чтобы указать, должен ли браузер быть разрешено отобразить страницу в фрейме. Сайты могут использовать это, чтобы избежать атак с помощью Clickjacking, гарантируя, что их контент не встроен в другие сайты. Он выглядит примерно так:
<meta http-equiv="X-FRAME-Options" content="SAMEORIGIN">
Значки здесь могут быть: deny, sameorigin или allow-from.
Дополнительная информация: https://developer.mozilla.org/en-US/docs/HTTP/X-Frame-Options
И: http://tools.ietf.org/html/rfc7034
Пожалуйста, проверьте, если ваша страница имеет такой заголовок?
(наконец):
Если все вышеперечисленное не применяются к вашему сценарию, то все должно работать. Пожалуйста, напишите больше информации, как разметка и ваш javascript.
@Vegard Хорошо, вы попробовали и получили его? –
Использование Javascript для доступа к 'iframe's (или любому другому ресурсу) при использовании протокола' file: /// 'чревато с трудом. Это по соображениям безопасности. Самое простое решение - запустить локальный веб-сервер. – lonesomeday
Каждый файл считается собственным доменом. Это не будет работать. См. Http://stackoverflow.com/questions/12587731/same-origin-policy-google-chrome-canvas-and-file-scheme –