首页 > 解决方案 > Web 组件不适用于 Firefox 扩展

问题描述

总的来说,我想要实现的是将自定义元素注入到 dom 中。我看到它被注入,但我收到一条TypeError: this.functionName is not a function消息。

我已经定义了与此类似的组件:

class Foo extends HTMLElement{
  constructor() {
    super();
  }

  connectedCallback() {
    this.doSomething();
  }

  doSomething() {
    //does something.
  }
}

当它调用时,doSomething()我收到了函数未定义错误。我尝试重命名该函数,定义其他函数并尝试调用它们,但没有任何效果。

我的清单定义类似于:

{"content_scripts"[{
"js":["custom-elements.min.js", "MyWebComponent.js"],
"run_at": "document_start"}]}

我也尝试过 polyfill webcomponents-bundle.js,但收到一条TypeError: Bh is null消息,并决定不跳下那个兔子洞,因为代码被混淆了。

我应该注意到,该扩展在 Chrome 和 Safari 甚至 Edge 中都能正常工作。

编辑:这可能不是很明显,但我正在使用自定义元素 v1 填充https://github.com/webcomponents/custom-elements

编辑:在与 Firefox 插件 Slack 频道中的某个人交谈后,我了解到这是一个已知问题,其中功能只是“丢失”。此外,对 dom 中的属性的访问也有限,这可能是由于浏览器扩展的内置安全限制。我的工作只是用来document.createElement('my-element-name')创建我的自定义元素,然后再附加属性。

标签: firefoxweb-componentfirefox-addon-webextensions

解决方案


推荐阅读