Chrome扩展程序WebNavigation API getFrame

时间:2012-01-02 06:33:07

标签: google-chrome google-chrome-extension

我找到了一个chrome扩展WebNavigation API,但我不知道如何使用它。有人可以给我一个简单的例子吗?

API:

chrome.webNavigation.getFrame(object details, function callback)

如果我想在页面中获取iframe id和iframe的scr,我可以使用此API吗?

2 个答案:

答案 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'));
}