我正在学习如何创建Chrome扩展程序.我刚开始开发一个来捕捉YouTube活动.我想将它与YouTube Flash播放器一起使用(稍后我将尝试使其与HTML5兼容).
manifest.json的:
{
"name": "MyExtension",
"version": "1.0",
"description": "Gotta catch Youtube events!",
"permissions": ["tabs", "http://*/*"],
"content_scripts" : [{
"matches" : [ "www.youtube.com/*"],
"js" : ["myScript.js"]
}]
}
Run Code Online (Sandbox Code Playgroud)
myScript.js:
function state() { console.log("State Changed!"); }
var player = document.getElementById("movie_player");
player.addEventListener("onStateChange", "state");
console.log("Started!");
Run Code Online (Sandbox Code Playgroud)
问题是控制台给了我"开始!" ,但没有"状态改变!" 当我播放/暂停YouTube视频时.
将此代码放入控制台时,它可以正常工作.我究竟做错了什么?
javascript google-chrome youtube-api google-chrome-extension content-script
我正在创建(学习)Google Chrome的扩展程序.
为了调试一些代码,我插入console.log()了如下:
var fourmTabs = new Array();
chrome.tabs.query({}, function (tabs) {
for (var i = 0; i < tabs.length; i++) {
fourmTabs[i] = tabs[i];
}
});
for (var i = 0; i < fourmTabs.length; i++) {
if (fourmTabs[i] != null)
window.console.log(fourmTabs[i].url);
else {
window.console.log("??" + i);
}
}
Run Code Online (Sandbox Code Playgroud)
这是非常简单的代码:将所有选项卡信息放入我自己的数组中,并打印一些东西.
要检查代码是否正常工作,我运行代码.问题出现了:
知道为什么吗?
javascript asynchronous breakpoints google-chrome-extension google-chrome-devtools
我正在编写一个带有内容脚本和后台脚本的Chrome插件,我正在尝试让两者进行通信.
在我的内容脚本中,我正在做
chrome.runtime.sendMessage({greeting: "hello"}, function(response) {
console.log(response.farewell);
});
Run Code Online (Sandbox Code Playgroud)
在我的后台脚本中,我正在做
chrome.runtime.onMessage.addListener(
function(request, sender, sendResponse) {
console.log(sender.tab ?
"from a content script:" + sender.tab.url :
"from the extension");
if (request.greeting == "hello")
sendResponse({farewell: "goodbye"});
}
);
Run Code Online (Sandbox Code Playgroud)
我的清单看起来像这样:
{
"manifest_version": 2,
"name": "Tesing Phase",
"version": "1.0",
"background": {
"persistent": false,
"scripts": ["bgscript.js"]
},
"content_scripts": [{
"js": ["contentscript.js"],
"all_frames": true,
"run_at" : "document_start",
"matches": ["*://*/*"]
}],
"web_accessible_resources": ["script.js"]
}
Run Code Online (Sandbox Code Playgroud)
当我运行我的插件时,我收到以下错误:
Uncaught TypeError: Object #<Object> has no method 'sendMessage'
Run Code Online (Sandbox Code Playgroud)
我尝试记录chrome.runtime,没有方法sendMessage.我在Ubuntu上使用Chromium 25.0版.我也试过使用 …