Как получить URL iframe в javascript? - PullRequest
0 голосов
/ 02 ноября 2010

Получение прямого URL текущего iframe в javascript невозможно из-за ограничений безопасности. Есть ли способ отменить это ограничение?

  1. Использование элемента управления ActiveX?

  2. Изменение параметров безопасности браузера?

  3. Использование HTML5?

  4. Использование вспышки?

  5. Использование сценариев на стороне сервера?

Ответы [ 2 ]

2 голосов
/ 02 ноября 2010

Непосредственно получить текущий URL-адрес iframe в javascript невозможно из-за ограничений безопасности

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

Насколько я знаю, нет, обойти это невозможно.

Единственный способ, которым я могу придумать - и вы не хотите идти по этому пути - это проксировать каждую страницу внутри iframe через скрипт локального сервера, переписывая каждую ссылку и действие на каждой странице, чтобы пройти через прокси, тоже. Но это очень сложно, требует большого количества вещей, о которых нужно знать, и не является реальным вариантом - многие современные сайты просто сломаются, если проксировать таким образом.

0 голосов
/ 02 ноября 2010

Насколько я понимаю, если у вас нет контроля над кадром, вы не должны знать, что происходит в этом кадре.Таким образом, зная, что это будет ошибка безопасности и должна быть исправлена.Браузеры не позволяют шпионить за тем, что вы делаете на другой странице.

Если у вас есть контроль над iFrame, для вас есть несколько вариантов

Здесь обсуждается: Как мне узнать текущее местоположение iframe?

в основном var iframe = document.getElementById ('loader'). Src

Вы можете получить местоположение, если iframeрасположен на том же сервере.Если он расположен на другом сервере, единственный способ - переписать URL-адреса, как это делают некоторые сайты.Это не так просто сделать, хотя

Вы также можете установить связь через окно HTML5: http://ajaxian.com/archives/cross-window-messaging-with-html-5-postmessage

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