Chrome扩展程序 - 获取源代码,源代码中404对象的错误

时间:2018-02-27 20:41:24

标签: javascript google-chrome-extension

我正在构建一个Chrome扩展程序,用于创建新标签页,加载页面,检索源代码并关闭标签页。这是我的第一个Chrome扩展程序。

整个过程或多或少都有效,它需要微调,但是当我检索某些对象未找到丢失图像的页面时,我的控制台会在我不执行或显示源代码时返回错误消息安慰。

我正在使用的功能如下:

function chromeTabsCreateAsync(createProperties) 
{
    return new Promise((resolve, reject) => 
        {
            console.log('tab start');
            chrome.tabs.create(createProperties, tab => 
                {
                    if (chrome.runtime.lastError) 
                        {
                            reject(new Error(chrome.runtime.lastError));
                        } 
                    else 
                        {

                        chrome.tabs.onUpdated.addListener(onUpdated);
                        function onUpdated(updatedTabId, details) 
                            {
                                    console.log(details.status+' '+tab.id);
                                    if (details.status == 'complete') 
                                        {

                                            chrome.tabs.executeScript(tab.id, 
                                                {
                                                    file: 'test.js',

                                                }, function(results) 
                                                {

                                                    var source = results[0];

                                                    chrome.tabs.remove(tab.id); 
                                                    resolve(source);
                                                });

                                        }
                            }
                        }

                });
            console.log('tab end'); 
        });
}

变量“source”包含源代码,但当它包含缺少的东西时,我在控制台中收到类似这样的错误:

GET chrome-extension://kcaijhlimdglmbpdmgmjdclklhppafge/WEB/images/max_chatbot.png net::ERR_FILE_NOT_FOUND

这个PNG确实是从页面的源代码中调用的,它确实从该页面中丢失了,但是为什么我的控制台会在源代码位于变量中时抛出该错误?

我做错了吗?

由于

劳伦

1 个答案:

答案 0 :(得分:0)

解决方案包括创建一个新文档来存储源代码:

parser = new DOMParser();
content = parser.parseFromString(source, "text/html");

source包含使用上面显示的脚本检索的源代码。

如果您想访问某个特定div的内容:

$(' .divClass',内容).contents();