2016-11-16 3 views
0

Так что я пытаюсь достичь - это взаимный iframe. Этот iframe будет совпадать с текущим родительским URL (http://parenturl.com).Интерактивный Iframe

Так что скажите, что у меня есть iframe, который отправляется в http://www.google.com, и я нажимаю ссылку внутри указанного iframe.

Это обновление родительского URL-адреса до http://parenturl.com#www.google.com/link2, iframe затем переходит к тому, на что вы нажали.

Мне также хотелось бы, чтобы родительский URL-адрес принимал параметры, поэтому, если я сделаю http://parenturl.com#bing.com, он перейдет к http://bing.com.

Iframe код:

<iframe src="http://www.google.com" id="myFrame"></iframe> 

вызовов на каждый клик в IFRAME:

$('a').click(function() { 
    window.top.location.href = "http://www.parenturl.com#"+$(this).attr('href'); 
}); 

вызовов при загрузке страницы:

window.onload = function() { 
var loc = 'Get url from # in parent url; 
    document.getElementById('myFrame').setAttribute('src', loc); 
}); 

У меня есть доступ к обоим доменам, но я может только редактировать html на одном.

+0

Google не хочет иметь ничего общего с iframes. – zer00ne

+0

Только пример URL-адресов –

+0

Вы не можете редактировать дочернюю страницу, так что CORS разрешает доступ к папке с родительскими страницами? Я с трудом пытаюсь понять, что можно редактировать, а другую страницу вы не можете редактировать. – zer00ne

ответ

0

Для предотвращения межсайтовых скриптовых атак все сообщения из iframe в родительский объект недопустимы, если iframe находится в другом домене, чем родительский. Вы можете установить URL-адрес iframe у родителя. Другой способ - как в общении текущего URL-адреса от iframe до родителя - невозможен.

+1

Ну, технически, конечно, вы можете общаться через фреймы, используя ['postMessage'] (https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage) (и соответствующие заголовки CORS, и т. д.), но для этого требуется, чтобы содержимое в рамке знало, какие сообщения отправлять. –

+0

Можете ли вы помочь мне немного больше с этим? –