3

我有一个 Chrome 扩展程序,可以检查页面是否为 NYTimes.com。如果是这样,它会存储该页面的标题并通过 PHP 发送它。侦听器本身可以工作。我可以说是因为 PHP 端输出了一个时间戳。对于每个请求,都存在时间戳。

问题是当我通过按住 CTRL 打开选项卡时,它不是活动选项卡。所以一个空白字段被发送到我的 PHP 文件中,我不知道页面的标题。如何从已加载但不是活动窗口的页面中获取数据?

chrome.history.onVisited.addListener(function(result){
if (result.url.search("www.nytimes.com") >= 0 || result.url.search("nytimes.com") >= 0){
    title = result.title;
    $.post("http://myURL.com/tmp/test.php", {titletag: title});
    console.log("Saving "+result.title);
}
 });
4

1 回答 1

0

有一种解决方法可以做同样的事情:

在清单中声明一个 javascript 文件的注入:

"content_scripts": [{
    "matches": ["http://www.nytimes.com/*", "https://www.nytimes.com/*"],
    "js": ["my_script.js"],
    "run_at": "document_start"
}],

你的 my_script.js :

chrome.extension.sendRequest({'title':document.title});

在您的扩展主脚本中:

chrome.extension.onRequest.addListener(function(data) {
    $.post("http://myURL.com/tmp/test.php", {titletag: data.title});
}
于 2012-11-18T16:04:57.533 回答