我找到了一个chrome扩展WebNavigation API,但我不知道如何使用它。有人可以给我一个简单的例子吗?
API:
chrome.webNavigation.getFrame(object details, function callback)
如果我想在页面中获取iframe id和iframe的scr,我可以使用此API吗?
答案 0 :(得分:2)
作为docs状态,需要传递tabId,processId,frameId ......
为了获得这些值,需要监听.onCompleted():
chrome.webNavigation.onCompleted.addListener(function(e){
chrome.webNavigation.getFrame(
{tabId: e.tabId, processId: e.processId, frameId: e.frameId},
function(details){
console.dir(details);
}
);
});
事件的属性在.getFrame()
之前已知答案 1 :(得分:1)
如果您想访问网页内容,请使用content scripts
所以,例如在manifest.json中:
{
"name": "My extension",
...
"content_scripts": [
{
"matches": ["http://www.example.com/*"],
"js": ["jquery.js", "myscript.js"]
}
],
}
在myscript.js中:
var iframe = document.querySelector('iframe');
alert(iframe.getAttribute('id'), iframe.getAttribute('src'));
另一种方法是使用programmatic injection,这实际上是简化内容脚本。
更新: 要从页面上的所有iframe获取src:
var iframes = document.querySelectorAll('iframe');
for(var i = 0; i < iframes.length; i++){
console.log(iframes[i].getAttribute('id'), iframes[i].getAttribute('src'));
}