Расширение Chrome WebNavigation API getFrame - PullRequest
0 голосов
/ 02 января 2012

Я обнаружил расширение WebNavigation API для Chrome, но не знаю, как его использовать.Может кто-нибудь дать мне простой пример?

API:

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

Если я хочу получить на странице идентификатор iframe и scr iframe, могу ли я использовать этот API ??

Ответы [ 2 ]

2 голосов
/ 21 февраля 2014

В качестве состояния 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 голос
/ 02 января 2012

Если вы хотите получить доступ к содержимому страницы, вы должны использовать сценарии содержимого

Так, например, в 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'));

Другим способом является использование программной инъекции , которая на самом деле является упрощенным сценарием содержимого.

Обновление: Чтобы получить src из всех iframes на странице:

var iframes = document.querySelectorAll('iframe');
for(var i = 0; i < iframes.length; i++){
    console.log(iframes[i].getAttribute('id'), iframes[i].getAttribute('src'));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...