Mam manifest.json plik, który wygląda tak:Dlaczego chrome.extension.getBackgroundPage() zwraca wartość null?
{
"name": "Zend Debugger Extension",
"version": "0.1",
"background_page": "background.html",
"permissions": [
"cookies", "tabs", "http://*/*", "https://*/*"
],
"browser_action": {
"default_title": "Launch Zend Debugger",
"default_icon": "icon.png",
"popup": "popup.html"
}
}
Oto mój background.html:
<html>
<script>
function testRequest() {
console.log("test Request received");
}
</script>
</html>
A moja popup.html:
<script>
function debug(target) {
if (target.id == 'thisPage') {
console.log('sending request');
chrome.extension.getBackgroundPage().testRequest();
}
}
</script>
<div onclick="debug(this)" id="thisPage">Current Page</div>
jednak background.html strona wydaje się być niedostępna. Dostaję taki błąd:
Uncaught TypeError: Cannot call method 'testRequest' of null
Kiedy sprawdzać chrome.extension.getBackgroundPage()
uzyskać wartość null. Myślę, że popełniłem błąd w pliku manifestu, ale nie widzę, co zrobiłem źle.
Dzięki.
Próbowałem dodanie pozwolenie tle, ale wciąż NULL podczas próby chrome.extension.getBackground () i ten sam błąd podczas działania skryptu. I rzeczywiście myślał pozwolenie tła związanego czy rozszerzenie nadal działa w tle, gdy wszystkie karty są zamknięte: http://code.google.com/chrome/extensions/manifest.html#permissions – AntBrown
Czy na pewno masz tła. plik html w tym samym folderze co wszystkie pliki rozszerzeń chrome ?, a jeśli tak, spróbuj ponownie załadować swoje rozszerzenie ze strony zarządzania rozszerzeniami, pamiętam, że kiedyś miałem błąd, że moje rozszerzenie nie przeładowało się, więc poszedłem do narzędzi programisty dla mojej strony tła i wykonywanego window.location.reload (true); z konsoli, która to naprawiła. Proszę odpowiedzieć, jeśli to zadziałało, będę kontynuować badania. – ElHacker
Ponowne załadowanie rozszerzenia naprawiło problem getBackgroundPage() = null. Dziękuję Ci. – AntBrown