Tôi có một manifest.json tập tin đó trông như thế này:Tại sao chrome.extension.getBackgroundPage() trả về 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"
}
}
Dưới đây là tôi background.html:
<html>
<script>
function testRequest() {
console.log("test Request received");
}
</script>
</html>
Và popup.html tôi:
<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>
Tuy nhiên, số background.html trang dường như không thể truy cập được. Tôi gặp phải lỗi này:
Uncaught TypeError: Cannot call method 'testRequest' of null
Khi tôi kiểm tra chrome.extension.getBackgroundPage()
Tôi nhận được giá trị null. Tôi nghĩ rằng tôi đã mắc lỗi trong tệp kê khai của mình, nhưng tôi không thể nhìn thấy những gì tôi đã làm sai.
Cảm ơn.
Tôi đã cố gắng thêm sự cho phép nền nhưng vẫn nhận được null khi cố gắng chrome.extension.getBackground () và cùng một lỗi khi tập lệnh chạy. Tôi thực sự nghĩ rằng sự cho phép nền liên quan đến việc phần mở rộng vẫn chạy trong nền khi tất cả các tab được đóng lại: http://code.google.com/chrome/extensions/manifest.html#permissions – AntBrown
Bạn có chắc chắn rằng bạn có nền. tệp html trên cùng thư mục với tất cả các tệp của tiện ích mở rộng chrome của bạn ?, nếu có, hãy thử tải lại tiện ích của bạn từ trang quản lý tiện ích mở rộng, tôi nhớ một lần có lỗi mà tiện ích của tôi không tải lại, vì vậy tôi đã chuyển đến công cụ của nhà phát triển cho trang nền của tôi và thực thi window.location.reload (true); từ bảng điều khiển, đã sửa nó. Xin vui lòng trả lời nếu điều này làm việc, tôi sẽ tiếp tục nghiên cứu. – ElHacker
Tải lại tiện ích mở rộng đã sửa lỗi getBackgroundPage() = null. Cảm ơn bạn. – AntBrown