2012-04-27 4 views
0

У меня есть Iframe на моей странице другого wesbsite. Но когда я нажимаю на любую ссылку внутри iFrame. Браузер перемещает пользователя на этот сайт. Как я могу это ограничить? Этот пользователь работает на моей странице? Как это делается здесь. http://www.hidemyass.com/Как заставить ссылку из iframe открываться в родительском окне, когда iframe не из одного домена?

Примечание: страница IFrame и родитель являются не совпадает с доменом.

Детали:

Предположим, у меня есть свой сайт http://www.example.com и здесь после получения учетных данных, я хочу открыть facebook.com в IFRAME и пользователь прибои фейсбук без перехода на facebook.com щелкать любую ссылку.

PS. Я использовал facebook.com, как пример. Я прошу об этом на любом сайте.

ответ

0

Вы можете попробовать код с этой должности: How to add click event to a iframe with JQuery

Я думаю, возможно, Вы можете использовать .live() функцию JQuery, но может быть U не могу :) я просматриваю в интернете об этом случае и .live () не работает, но .bind() должен работать нормально :)

1

Чтобы сделать то, что делает http://www.hidemyass.com/, происходит с помощью только javascript, потому что javascript является клиентской стороной. Этот сайт, вероятно, действует как прокси-сервер ... почти, что означает, что он требует связи на стороне сервера (возможно). (Вероятно, причина, по которой они запрашивают деньги, потому что они обрабатывают трафик), вам, скорее всего, понадобится AJAX, для чего требуется сервер с некоторой способностью обрабатывать и получать доступ к другим серверам без ограничений. Любой бесплатный сервер не будет делать это легко и часто имеет политику на серверах, на которые они отслеживают связь. Поэтому вам, вероятно, придется заплатить кому-то, если вы еще этого не сделали. это cheep, если это только вы, но чем дороже, тем дороже.

Таким образом, вы можете узнать, подходит ли для вас режим песочницы.

<iframe sandbox><iframe> 

Для повторного включения функции добавить в песочнице pramiters

  • (значения) - - - - - - - - - - - - - - - -распространяется все ограничения
  • позволяют -forms - - - - - - - - - - - - - - - Повторно разрешает отправку формы
  • allow-pointer-lock - - - - - - - - - Повторно включает API
  • allow-popups - - - - - - - - - - - - - Повторное включение всплывающих окон
  • allow-same-origin - - - - - - - - - -Включает содержимое iframe, которое должно рассматриваться как одноименное.
  • allow-scripts - - - - - - - - - - - - Re -Позволяет скрипты
  • позволяют-топ-навигации - - - - - - - - Позволяет содержание IFrame перемещаться его контекста, просматривающие верхнего уровня

источник: w3schools

<iframe sandbox="allow-forms"><iframe> 

Если это делает не удовлетворять, играйте с onclick и onchange накануне nts, ​​чтобы пользователи не могли взаимодействовать. с интерактивными элементами или перемещением на другие страницы.

<iframe onchange="function(){\ 
    document.getElementsByTagName("iframe"[0].src =\ 
    "http://facebook.com");\ 
}"></iframe> 

или какой-либо onclick предотвратить по умолчанию.

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

Доступ к iframe.contentDocument и найти и удалить все <a ... </a> теги или те, которые вы хотите. существует какой-то метод удаления детей, который вы можете найти для этого. если вы хотите быть более сообразительным, вы можете сравнить href и посмотреть, принадлежит ли он иностранному сайту.

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