当iframe不是来自同一个域时,如何强制在iframe中打开iframe的链接?

时间:2012-04-27 18:39:20

标签: javascript html iframe curl

我在另一个wesbsite的页面上有iframe。但是当我点击iFrame里面的任何链接时。浏览器将用户移动到该站点。我怎么能限制它?该用户在我的页面上完成内部冲浪? 就像在这里完成一样。 http://www.hidemyass.com/

注意:iframe和父网页不是同一个域

详细说明:

假设我有我的网站http://www.example.com,在获取凭据后,我想在iframe中打开facebook.com,用户在没有移动到facebook.com点击任何链接的情况下浏览Facebook。

PS。我以facebook.com为例。我要求任何网站。

2 个答案:

答案 0 :(得分:1)

只使用javascript来执行http://www.hidemyass.com/所做的事情是不可能的,因为javascript是客户端。该站点很可能充当服务器代理...几乎,这意味着它需要服务器端通信(可能)。 (可能是他们因为处理流量而要求钱的原因)你可能需要AJAX这样做,这需要一台能够无限制地处理和访问其他服务器的服务器。任何免费服务器都不会轻易做到这一点,并且通常在跟踪通信的服务器上有一个策略。如果你还没有,你可能需要付钱给某人。如果它只是你,这就是吱吱声,但是流量越多就越贵。

也就是说,你可以看看沙箱模式提供的是否适合你。

<iframe sandbox><iframe>

要重新启用功能,请将它们添加到沙盒pramiters

  • (无价值) - - - - - - - - - - - - - - - - 适用所有限制
  • 允许表格 - - - - - - - - - - - - - - 重新启用表单提交
  • allow-pointer-lock - - - - - - - - - - 重新启用API
  • allow-popups - - - - - - - - - - - - 重新启用弹出窗口
  • allow-same-origin - - - - - - - - - 允许将iframe内容视为来自同一来源
  • allow-scripts - - - - - - - - - - - - - 重新启用脚本
  • allow-top-navigation - - - - - - - 允许iframe内容导航其顶级浏览环境

来源:w3schools

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

如果不满足,请使用onclickonchange事件来阻止用户进行互动。使用可点击的元素或移动到其他页面。

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

或某种onclick防止默认。

首先它不安全所以为什么要停在那里。

访问iframe.contentDocument并搜索并删除所有<a ... </a>标记或仅删除您想要的标记。有一些删除子方法,你可以看到这样做。如果你想要更精明,你可以比较href&s,看看它是否属于国外网站。

答案 1 :(得分:0)

您可以尝试以下帖子中的代码: How to add click event to a iframe with JQuery

我想也许你可以使用.live()jquery函数,但可能是你不能:)我在网上浏览这个案例而.live()不起作用,但.bind()必须正常工作:)