我想创建我的第一个Firefox-Addon,所以我真的没经验。 我想创建一个插件,以修改YouTube网站。
background.js
function editVideo() {
document.getElementsByTagName("video")[0].playbackRate = 2;
document.getElementById("movie_player").stopVideo();
document.getElementById("movie_player").setPlaybackQuality('hd720');
document.getElementById("movie_player").playVideo();
}
browser.browserAction.onClicked.addListener(editVideo);
的manifest.json
{
"description": "YouTube-Test",
"manifest_version": 2,
"name": "YouTube-Test",
"version": "1.0",
"background": {
"scripts": ["background.js"]
},
"browser_action": {
"default_icon": {
"48": "icons/logo_48.png",
"64": "icons/logo_64.png"
}
}
}
因此,如果我点击按钮,Playbackrate应为2,质量为720p。 但没有任何反应!如果我直接在控制台中键入thoose命令,它就可以工作。
我总是收到这个错误:
document.getElementsByTagName(...)[0]未定义
或:
document.getElementById(...)为null
感谢您的帮助。
答案 0 :(得分:0)
{
"description": "YouTube-Test",
"manifest_version": 2,
"name": "YouTube-Test",
"version": "1.0",
"background": {
"scripts": ["background.js"]
},
"content_scripts": [
{
"matches": ["https://www.youtube.com/*"],
"js": ["runsOnWebPage.js"],
"run_at": "document_idle"
}
],
"browser_action": {
"default_icon": {
"48": "icons/logo_48.png",
"64": "icons/logo_64.png"
}
}
}
content_scripts中的js文件现在应该在youtube上运行,你可能想要添加更多"matches"
,因为这个只覆盖了那个特定的链接,youtube有1000个不同的链接