2016-04-29 14 views
3

これの目標は、自分の内線が履歴の変更を待つようにすることです。その内容に応じて、特定の操作を行います。ここで複数のchrome.webNavigation.onHistoryStateUpdatedが機能しない

は、私がこれまで

popup.js

chrome.tabs.update({ url: "https://www.WEBSITE.com/messages" }); 

chrome.webNavigation.onHistoryStateUpdated.addListener(function(details) { 
    if (details.url.indexOf("messages") >= 0) { 
     chrome.extension.getBackgroundPage().chrome.tabs.executeScript(null, { 
      file: 'getInboxStats.js' 
     });; 
    } else {//if (details.url.indexOf("match") >= 0) { 
     chrome.extension.getBackgroundPage().chrome.tabs.executeScript(null, { 
      file: 'startBotting.js' 
     });; 
    } 
}); 

chrome.runtime.onMessage.addListener(function(message) { 
    if (message.type == "emptyAmount") { 
     emptyAmount = message.content; 
     if (!(percentageOfMessages > 0)) { 
      percentageOfMessages = 50; 
     } 
     amountToSend = Math.floor(emptyAmount * (percentageOfMessages/100)); 
     alert(amountToSend); 
     chrome.tabs.update({ url: "https://www.WEBSITE.com/match" }); 
    } 

}); 

getInboxStats.js

var currentAmount = document.getElementsByClassName('count')[1].innerHTML; 
var maxAmount = document.getElementsByClassName('total')[0].innerHTML; 
var emptyAmount = maxAmount - currentAmount; 

chrome.runtime.sendMessage({ content: emptyAmount, type: "emptyAmount" }); 

startBotting.js

を持っているものです私が持っている
alert("TEST"); 

問題がgetInboxStats.js開始ということですが、onHistoryStateUpdatedのみファイルstartBotting.jsあなたはonHistoryStateUpdatedの目的を誤解「TEST」

答えて

2

言う警告を表示することはありませんので、一度に動作するようだようなものです。

通常のナビゲーションではなく、履歴APIを使用してhistory state manipulation without navigationのインスタンスを取得します。 update({url: "..."})に電話すると、通常のナビゲーションになります。

ブラウザの履歴の更新が本当に心配な方は、chrome.history.onVisitedを使用してください。

webNavigation APIを使用して通常のナビゲーションをキャプチャする場合は、onCommittedイベントを使用する必要があります。

また、chrome.tabs APIを調べる必要があります。

関連する問題