2016-04-29 4 views
3

Das Ziel ist, meine Erweiterung warten auf eine Änderung in der Geschichte, je nachdem, was es sagt, eine bestimmte Aktion zu tun. HierMehrere chrome.webNavigation.onHistoryStateUpdated funktioniert nicht

ist das, was ich bisher

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"); 

Das Problem, das ich habe, ist, dass die getInboxStats.js beginnt, aber es ist wie die onHistoryStateUpdated nur einmal zu funktionieren scheint, weil die Datei startBotting.js nie eine Warnung anzeigt, die ‚TEST‘

Antwort

2

Sie mißverstehen den Zweck onHistoryStateUpdated sagt.

Er erfasst die Instanzen von history state manipulation without navigation über die History API im Gegensatz zur normalen Navigation. Wenn Sie update({url: "..."}) anrufen, ist es eine normale Navigation.

Wenn Sie wirklich besorgt über Browser-Updates sind, sollten Sie chrome.history.onVisited verwenden.

Wenn Sie die API webNavigation verwenden möchten, um normale Navigationen zu erfassen, sollten Sie das Ereignis onCommitted verwenden.

Sie sollten auch in chrome.tabs API suchen.

Verwandte Themen