0

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

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

细节:

假设我有我的网站http://www.example.com并且在获得凭据后在这里,我想在 iframe 中打开 facebook.com 并且用户浏览 facebook 而无需在单击任何链接时转到 facebook.com。

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

4

2 回答 2

1

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

也就是说,您可以查看沙盒模式是否适合您。

<iframe sandbox><iframe>

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

  • (无值) - - - - - - - - - - - - - - -应用所有限制
  • allow-forms - - - - - - - - - - - - - 重新启用表单提交
  • 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,看看它是否属于外国网站。

于 2016-05-16T07:24:09.493 回答
0

您可以尝试这篇文章中的代码: How to add click event to a iframe with JQuery

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

于 2012-04-27T18:49:03.197 回答