读iframe重定向(同域)

时间:2016-04-19 15:33:12

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

我正在编写chrome扩展程序,因此我有使用非跨域iframe的特殊情况,但无法更改框架中显示的页面。

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

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

注意:操作完全在父页面中,让我们想象一下我只是想触发一个警告框。

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

1)如何查看iframe的网址?

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

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

2 个答案:

答案 0 :(得分:0)

您可以在后台页面中收听webNavigation.onBeforeNavigate,当导航即将发生时会触发,您可以在回调参数中获得urlframeId

答案 1 :(得分:0)

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

Chrome有一个webNavigation API,可能会为您的扩展程序提供便利。

但是,如果您想获得当前的域名,请使用...

document.domain

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

获取该域名
window.location

它还可以使用添加到网址的哈希值。

如果你想要没有哈希的网址,你可以使用document.referrer,或者如果你觉得哈希,你可以做类似......

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