2012-11-11 107 views
3

我有一个Chrome扩展程序,用于检查页面是否为NYTimes.com。如果是这样,它存储该页面的标题&通过PHP发送它。监听器本身工作。我可以告诉,因为PHP端输出时间戳。对于每个请求,时间戳都存在。Chrome扩展程序无法从非活动标签中获取标题

问题是,当我通过按住CTRL打开一个Tab时,它不是活动选项卡。所以一个空白字段被发送到我的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); 
} 
}); 
+0

供参考:您的if条件不需要第一个子句。第二个子句就足够了,因为它是第一个子句的子字符串。 – xbonez

+0

感谢您的提示! – user1815584

回答

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}); 
} 
相关问题