(HTML / javascript) Обработка междоменного iframe - PullRequest
1 голос
/ 03 июля 2011

У меня есть страница, которая отображает другой веб-сайт (скажем, www.cnn.com) в iframe.

Все, что я хочу, это сделать ссылки внутри iframe открытыми в родительском окне, а не внутрикадр.

Я знаю, что это обычно невозможно по соображениям безопасности, что имеет для меня смысл.Однако страница, над которой я работаю, будет не общедоступной, а только на моем частном компьютере, и если мне придется отключить определенные функции безопасности, чтобы она заработала, все в порядке.

Есть ли какие-либоЕсть ли способ сделать это?

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

Я читал, что в Firefox (который я использую), можно получить расширенные разрешения в javascript, если скрипт «подписан» (или конкретная запись конфигурации изменена).Однако я не знаю, как использовать эти расширенные разрешения для моих целей ... какие-либо подсказки?

Я бы также рассмотрел различные подходы, например, вообще не использовал iframe.Каким бы ни был метод, я хочу иметь возможность встраивать несколько веб-сайтов, которые я не могу контролировать, в одну страницу.Ссылки, нажимаемые на любом из встроенных веб-сайтов, должны открываться в родительском окне.Это просто должен быть удобный инструмент для меня.Я должен сказать, что я в основном не знаю javascript и просто учусь на практике.Если вы можете с уверенностью сказать, что то, что я хочу, невозможно при использовании любых методов на стороне клиента, это также поможет.Я думаю, было бы довольно просто сделать это, например, с помощью php, но я не хочу устанавливать веб-сервер, если в этом нет необходимости.Спасибо за любые советы!

Ответы [ 2 ]

1 голос
/ 03 июля 2011

Это решение немного отличается от того, о котором вы просили, но может быть лучшим способом решения проблемы, поскольку оно может дать вам возможность искать без ущерба для обычной веб-безопасности.

Интересно, Greasemonkey (дополнение для Firefox и других браузеров) может быть полезным решением для вас, поскольку оно позволяет вам запускать локальный javascript для других страниц, чтобы изменять их локально, в некоторой степени, независимо от нормальных ограничений безопасности.Таким образом, вы можете просмотреть все ссылки на странице CNN и изменить их, если это то, что вам нужно было сделать.

Чтобы использовать его, вы должны установить надстройку greasemonkey в Firefox, написать скрипт, который изменяет CNN.com так, как вам нужно, установить этот скрипт в Greasemonkey, а затем настроить таргетинг скрипта только на веб-странице.CNN.com.Я думаю, что он должен работать на этом сайте, находится ли он в iframe или нет, но ваш сценарий, вероятно, может определить, был ли он в iframe, если вам нужно.

0 голосов
/ 03 июля 2011

Может показаться, что атрибут HTML5 - это то, что вы ищете. Но, похоже, что-то еще не поддерживается ...

http://www.w3schools.com/html5/att_iframe_seamless.asp

...