【问题标题】:Read iframe redirect (same domain)读取 iframe 重定向(同域)
【发布时间】:2016-08-11 21:43:40
【问题描述】:

我正在编写一个 chrome 扩展,因此我遇到了使用非跨域 iframe 的特殊情况,无法更改框架中显示的页面。

当用户在 iframe 中单击某个链接时,我想运行一些 JavaScript。单击该链接的默认行为是加载页面 targetpage.com。我认为读取 iframe 中被点击的特定元素是不可能或容易的

作为一种解决方法,我想我可以检查 iframe 是否重新加载,指向 targetpage.com,然后执行操作。

注意:动作完全在父页面中,假设我只是想触发一个警报框。

我知道如何在 iframe 加载时触发 JavaScript。我的三个问题是:

1) 如何查看 iframe 的 url?

2) 有没有办法在加载 targetpage.com 之前检查 iframe、url。以斯帖比之后?

3) 有更好的解决方案吗?

【问题讨论】:

    标签: javascript jquery html iframe google-chrome-extension


    【解决方案1】:

    你可以在后台监听webNavigation.onBeforeNavigate,当导航即将发生时触发,你可以在回调参数中得到urlframeId

    【讨论】:

      【解决方案2】:

      这可能不是最好的答案,因为我没有玩过这么多。

      Chrome 有一个 webNavigation API,看起来可能对您的扩展程序派上用场。

      但是,如果您想获取当前所在的域,您可以使用...

      document.domain
      

      如果您位于该域的子目录中,您可以使用...获取它

      window.location
      

      它也适用于向 url 添加哈希。

      如果你想要不带哈希的 url,你可以使用 document.referrer 或者如果你觉得 hacky,你可以这样做......

      var str = window.location
      var res = str.toString().split(str.hash)
      document.body.innerHTML = res
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-07-29
        • 1970-01-01
        • 1970-01-01
        • 2017-10-20
        • 1970-01-01
        • 2019-12-24
        • 1970-01-01
        相关资源
        最近更新 更多