2015-09-22 6 views
1

Мой вопрос прост, предположим, что у меня есть HTML-файл, как именованного goal.html:как открыть окно страницы HTML в IFRAME другой HTML страницы

<html> 
. 
. 
. 
<body> 
... 
<iframe id="main_display" src="../pages/main.html" width=300 height=300><iframe> 
. 
. 
. 

и теперь я написал строку из JavaScript в main.html как window.a ="a"

теперь мой вопрос, как я могу получить значение window.a, когда я нахожусь в goal.html

после поиска что-то и тратить некоторое время в гугле разработке инструмента, я основал что-то соответствующее оно iframe.contentWindow он возвращает объект, но когда я пытаюсь открыть (я имею в виду расширить), он показывает мне ошибку:

Uncaught [object DOMException] 

Так как же я сделать это?

+0

Пробовал содержимоеWindow.document или contentDocument? См. Http://stackoverflow.com/a/1452885/1998238 – wwwmarty

+1

это дало мне ошибку: 'Uncaught DOMException: заблокировал кадр с началом" null "от доступа к кадру скрещивания.' –

+0

Если 'contentWindow' не работайте для вас, попробуйте это: «var myFrame = document.getElementById (« main_display »). contentDocument;' – AnhTriet

ответ

0

это должно работать на goat.html

var childValue = document.getElementById("main_display").contentWindow.a; 
+1

дал мне ошибку: 'Uncaught DOMException: заблокировал кадр с источником« null »от доступа к кадру скрещивания.' –

+1

URL-адрес iframe, к которому вы пытаетесь получить доступ, находится в другом домене? из-за [политики безопасности одного и того же происхождения] (https://en.wikipedia.org/wiki/Same-origin_policy), любой браузер блокирует любой скрипт, пытающийся получить доступ к кадру, который имеет другое происхождение. – cylua2

0

Это странно, что он не работает на Chrome. Я предлагаю вам попробовать положить его в .ready и .load функции.

$(function() { 
    $("#myiframe").load(function() {       
     frames["myframe"].document.body.innerHTML = htmlValue; 
    }); 
}); 

Для более подробной информации, посмотрите на эту answer.

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