Общие вопросы
Здравствуйте! Я вникаю в мир Chrome Extensions, и у меня возникают проблемы с сокращением общего рабочего процесса. Похоже, что Google недавно переключился на серьезную защиту страниц событий, вместо того чтобы хранить все в background.js и background.html. Я принимаю участие в этом, чтобы означать, что мы должны передать большую часть вашей логики расширения содержимому script.
В праймер страницы Google, они содержат контент script, указанный в файле manifest.json. Но в своем расширении примера страницы события он вводится через этот кодовый блок в background.js: chrome.tabs.executeScript(tab.id, {file: "content.js"}, function() { });
Каковы преимущества этого в том или ином направлении?
Мой код
Я продвигаю программный способ ввода содержимого script, например, в Google.
manifest.json
{
"manifest_version": 2,
"name": "Test",
"description": "Let get this sucker working",
"version": "0.0.0.1",
"permissions": [
"tabs",
"*://*/*"
],
"background": {
"scripts": ["background.js"],
"persistent": false
},
"browser_action": {
"default_icon": "icon.png"
}
}
background.js
chrome.browserAction.onClicked.addListener(function() {
console.log("alert from background.js");
chrome.tabs.executeScript({file: "jquery-2.0.2.min.js"}, function() {
console.log("jquery Loaded");
});
chrome.tabs.executeScript({file: "content.js"}, function() {
console.log("content loaded");
});
});
content.js
console.log('you\'r in the world of content.js');
var ans = {};
ans.createSidebar = function() {
return {
init: function(){
alert("why hello there");
}
}
}();
ans.createSidebar.init();
Я могу получить первые 3 console.log
заявления, которые будут отображаться в отладчике фоновой страницы. Я также могу получить предупреждение от content.js, чтобы появиться на любом веб-сайте. Но я не могу видеть console.log
из content.js, и я не могу просмотреть какой-либо JS из content.js. Я пробовал посмотреть в разделе "Контент-контент" на вкладке Источники отладки фоновой страницы. Несколько других сообщений на SO предложили добавить операторы debugger;
, чтобы показать их, но мне не повезло ни с чем. Самое близкое решение, которое я видел, этот пост, но делается путем перечисления содержимого script в манифесте.
Любая помощь будет оценена по достоинству. Спасибо!