簡體   English   中英

如何在Chrome擴展程序中執行腳本“新建頁面”?

[英]How can i excute script New page in 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只是在“第一個”打開的頁面上執行。

我不知道什么是真實的。 請幫我!

該代碼將為您工作。

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);
 });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM