【问题标题】:document.getElementsBy is undefineddocument.getElementByid 未定义
【发布时间】:2018-02-16 15:55:43
【问题描述】:

我想创建我的第一个 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"
    }
  }

}

所以如果我点击按钮,播放率应该是 2,质量应该是 720p。 但是什么也没有发生!如果我直接在控制台中输入这些命令,它就可以工作。

我总是收到这个错误:

document.getElementsByTagName(...)[0] 未定义

或:

document.getElementById(...) 为空

感谢您的帮助。

【问题讨论】:

  • 可以添加html代码吗?这通常不应该发生。
  • 你能把你的html代码也粘贴一下吗?
  • 好吧,我知道使用 chrome,你需要在你正在处理内容的清单中设置它,我猜 Firefox 可能是相同的方式。
  • 这些响应表明调用时 DOM 未加载。
  • 对不起,您对 html 代码到底是什么意思? YouTube 的 HTML 代码?

标签: javascript firefox youtube-api


【解决方案1】:
{
  "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 个不同的链接

【讨论】:

  • 谢谢。我不再收到此错误消息,但它仍然不起作用。什么都没发生。我现在必须在 background.js 文件中写什么我可以让它为 emtpy 吗?
  • 你是把js文件放到内容脚本里吗?可能和权限有关,也可以在浏览器操作前尝试在函数外控制台登录
  • 是的,我把整个代码放在了runsOnWebPage.js中。我让 background.js 为空。而且我在控制台日志中没有收到任何错误消息。
  • 如果你在 youtube 上按 F12,你看到你登录的内容了吗?
  • 我在控制台日志中得到了这个:Laden fehlgeschlagen für das
猜你喜欢
  • 2017-05-04
  • 2015-02-07
  • 2014-10-03
  • 1970-01-01
  • 2013-04-15
  • 2019-03-01
  • 1970-01-01
  • 2010-10-21
相关资源
最近更新 更多