2009-06-02 5 views
65

Есть ли простой способ получить текущий URL-адрес из iframe?Получить текущий URL-адрес от IFRAME

Зритель будет проходить через несколько сайтов. Я предполагаю, что я буду использовать что-то в javascript.

+1

Если вы пришли сюда, ища URL-адрес «родительской» страницы iframe, см. Http://stackoverflow.com/q/3420004/32453 – rogerdpack

ответ

109

По соображениям безопасности вы можете получить только URL-адрес до тех пор, пока содержимое iframe и ссылочный javascript не будут отправлены из того же домена. Пока что это правда, что-то, как это будет работать:

document.getElementById("iframe_id").contentWindow.location.href 

Если два домена не соответствуют друг другу, вы столкнетесь с перекрестными ограничениями безопасности сценариев ссылкой на сайт.

См. Также answers to a similar question.

+0

вы знаете, работает ли решение, полученное выигрышным ответом? Я не мог заставить его работать на моем компьютере (IE, windows) – chris

+0

Я говорил о ссылке, которую вы указали в аналогичном вопросе. – chris

+0

В вопросе, который я связал, нет ответного ответа ... если вы имеете в виду самый верхний ответ, это не действительно рабочее решение. С помощью IE вы можете попробовать подход HTA, который также предоставляется в ответах на вышеупомянутый вопрос. – kkyy

16

Если IFrame из другого домена (кросс домена), другие ответы не собираются, чтобы помочь вам ... вы просто должны использовать это:

var currentUrl = document.referrer; 

и - здесь вы имеете получил главный URL!

+14

-1 OP ищет текущий URL-адрес iframe, а не ссылку на родительскую страницу. – Christophe

+10

@ Christophe - Я знаю, но это может помочь людям, которые ищут главный URL, и пришли к этому вопросу! – ParPar

+4

gr8 .. Это помогает мне – Vikky

3

Надеюсь, это поможет некоторым образом в вашем случае, Я пострадал с той же проблемой и просто использовал localstorage для обмена данными между родительским окном и iframe. Таким образом, в родительском окне вы можете:

localStorage.setItem("url", myUrl); 

И в коде, где источник IFrame просто получить эти данные из LocalStorage:

localStorage.getItem('url'); 

спас меня много времени. Насколько я вижу, единственным условием является доступ к исходному коду страницы. Надеюсь, это поможет кому-то.

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