我正在编写chrome扩展程序,因此我有使用非跨域iframe的特殊情况,但无法更改框架中显示的页面。
当用户点击某个链接时,在iframe中,我想运行一些JavaScript。单击该链接的默认行为是加载页面targetpage.com。我不认为在iframe中点击某个特定元素是可能的,或者很容易
作为一种解决方法,我想我可以检查iframe是否重新加载,指向targetpage.com,然后执行操作。
注意:操作完全在父页面中,让我们想象一下我只是想触发一个警告框。
我知道如何在iframe加载时触发JavaScript。我的三个问题是:
1)如何查看iframe的网址?
2)有没有办法在加载targetpage.com之前检查iframe,url。以斯帖比以后?
3)有更好的解决方案吗?
答案 0 :(得分:0)
您可以在后台页面中收听webNavigation.onBeforeNavigate,当导航即将发生时会触发,您可以在回调参数中获得url
和frameId
。
答案 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