如何在Chrome扩展程序中执行脚本“新页面”?

时间:2018-08-21 03:32:59

标签: javascript google-chrome-extension

我做Chrome扩展程序。 该程序立即阅读页面并进行分析,进入下一页。

我已经阅读并转到下一页。但是有问题 立即阅读页面并移动下一页非常完美。但下一页读取功能不起作用。

我点击首页上的阅读按钮,将其阅读。但接下来请阅读,不起作用。

我看到回调函数获取未定义数据。

下面是我的代码。

function matching(user) {
    JustFIDsFromPage(); 
}
function JustFindIDsFromPage() {
    //read and find Data
    chrome.tabs.executeScript({
        code: "var ids = [];var names = document.querySelector('.gallery').children;for(var i=0;i<names.length;i++){var tmp = names[i].innerHTML;var id = tmp.substring(11+tmp.search('/galleries/'),tmp.search('.html'));ids.push(id)} ids"
    }, callbackJustFindIDsFromPage);

}

function callbackJustFindIDsFromPage(count) {
    //save get datas.
    var idList = count.toString().split(',');
    for (var i = 0; i < idList.length; i++) {
        document.querySelector('#result').innerText += idList[i] + "\n";
    }
    //go to next page.
    chrome.tabs.executeScript({
        code: "var page = document.querySelector('.page').firstElementChild.children; var end=0; var inhtml = page[1].innerHTML;var intext = page[1].innerText; if(inhtml == intext){var link = page[2].innerHTML; var url = link.substring(9, 20); end=1; window.location.href = url; } end;"
    }, callbackGoNextPage);

}

function callbackGoNextPage(nextFlag) {
    if (nextFlag == 1) {
        JustFindIDsFromPage();
    }
}

我猜是这个。

chrome.tabs.executeScript只是在“第一个”打开的页面上执行。

我不知道什么是真实的。请帮助我!

1 个答案:

答案 0 :(得分:0)

此代码将为您服务。

chrome.tabs.getSelected(null, function (tabss) {
    tabid = tabss.TAB_ID_NONE;
});

chrome.tabs.update(tabid, { url: url, active: true }, function (tab1) {

var listener = function (tabId, changeInfo, tab) {

    if (tabId == tab1.id && changeInfo.status === 'complete') {
       chrome.tabs.onUpdated.removeListener(listener);
        //your code

        }
    }
    chrome.tabs.onUpdated.addListener(listener);
 });