【问题标题】:Is it possible to tell if the src of an iFrame has changed?是否可以判断 iFrame 的 src 是否已更改?
【发布时间】:2011-06-26 01:30:51
【问题描述】:

是否可以判断 iFrame 的来源是否已将客户端重定向到另一个页面?如果是,请告诉客户端重定向到哪个页面?

【问题讨论】:

标签: javascript iframe


【解决方案1】:

onload事件

喜欢

<iframe src="http://www.mydomain/" onLoad="alert('fire');"></iframe>

只要 iframe 中的位置发生变化,就会弹出警报。 看看here also

这是一个解释如何get current location of an iframe的问题

【讨论】:

  • 啊,看那个!很棒的东西,但是……我认为这仅适用于同源帧。
  • 没有什么能让你窥探用户在不同来源上所做的事情。
  • 不,但这并不是直接的间谍活动——是吗?这不像我使用 JS 来解析服务器吐回的响应。我要做的就是检查 xmlhttpobject 是否获得了一定的 HTTP 回报,然后尝试过滤掉它重定向到的 HTTP url。我知道 JS 受到限制,但这应该是可能的。我查看了一些其他用户发布的 IE 提案的 Microsoft API,但并没有完全发挥作用。
【解决方案2】:

如果 iframe 导航到新页面,src 属性不会改变,但 iframe 的 contentWindow 的位置会改变。

如果您在自己域的页面中启动 iframe,您可以使用 iframes onload 事件来读取 iframe.contentWindow.location.href。

使用 try-block,如果由于跨域调用而失败,您可以返回 iframe 现在在 some 远程站点中。

如果它返回一个值,您可以返回 iframe 导航到的您网站上的 url。

【讨论】:

  • 听起来和我一模一样
【解决方案3】:

好吧,所以我一直在摆弄这个脚本一段时间,我想我已经得出了一个我认为值得分享的结论。跨域非常严格,据我所知,没有办法知道 xmlhttprequest 对象传递到哪个 url。但是,我确实注意到另一个站点上的解决方案,他们建议使用隐藏的 iFrame(我指的是@ayush 答案中的链接)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-31
    • 1970-01-01
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 2013-04-21
    相关资源
    最近更新 更多