3

ページが NYTimes.com かどうかを確認する Chrome 拡張機能があります。その場合、そのページのタイトルを保存し、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 に答える