ReferenceError:未定义要求

2023-11-26

我目前正在开发 Mozilla Firefox 插件。

我已经设置了一个面板并附加了一个内容脚本。我需要在内容脚本和 main.js 之间进行通信。我为此使用 addon-sdk 的端口 api。然而由于某种原因,我什至无法在两者之间传递简单的消息。

当我使用 cfx 测试我的插件时,我不断收到以下错误:“ReferenceError:require 未定义”

知道出了什么问题吗?

popup.js

var self = require("sdk/self");
self.port.on("dataToPopup", function (data) { 
$("p.test").text(data);
});

第一行本身会引发错误。

main.js

var { ToggleButton } = require('sdk/ui/button/toggle');
var self = require("sdk/self");

var button = ToggleButton({
    id: "my-button",
    label: "my button",
    icon: {
        "16": "./images/tsfm16px.png"
    },
    onChange: handleChange
});

var panel = require("sdk/panel").Panel({
    contentURL: self.data.url("html/popup.html"),
    contentScriptFile: [self.data.url("scripts/jquery-1.9.1.min.js"), self.data.url("scripts/jquery-ui.js"), self.data.url("scripts/popup.js")],    
    onHide: handleHide
});

function handleChange(state) {
    if (state.checked) {
        panel.show({
            position: button
        });
    console.log("panel opened");    
    }
}

function handleHide() {
    button.state('window', {checked: false});
    console.log("panel closed");
}

panel.on("show", function() {
    panel.port.emit("dataToPopup", "flow");
    console.log("data sent");
});

main.js 不会抛出相同的错误

以前有人经历过这个吗?


内容脚本无权访问require。反而self已经宣布了.

只需删除require行自popup.js(但不是main.js).

See 使用“端口”进行通信.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ReferenceError:未定义要求 的相关文章

  • 有没有模拟 Facebook 游览的 jQuery 插件?

    我指的是 Facebook 游览 可能使用开箱即用的 Facebook CSS 我已经知道这两个 http tympanus net codrops 2010 12 21 website tour http tympanus net cod
  • 使用模态表单 ajax 超出 HTMLFormElement.toString 的最大调用堆栈大小

    我想使用模态窗口中的 ajax 请求提交表单 单击此链接可打开该模式 a class btn btn primary i class fa fa edit i Write a review a 模态窗口 div class modal fa
  • 保存/导出Chrome的JavaScript控制台输入历史记录

    无论如何 我可以保存或导出 JavaScript 控制台的历史记录吗 input 控制台历史记录 在 Google Chrome 中 我不想保存输出或错误 因此将鼠标悬停在控制台框上 右键单击并选择Save as 不是解决方案 我不想每次都
  • JavaScript 动画平滑滚动

    默认情况下 当您有这样的片段链接时 a href some url some fragment some text a 浏览器立即向下滚动到该片段 我该如何编程才能使用标准 JS 顺利地向下移动到该片段 这是一个例子 Example htt
  • 使react-leaflet能够离线使用

    我一直在使用反应传单 https github com PaulLeCam react leaflet图书馆 到目前为止运作良好 现在我希望网站预加载尽可能多的图块 以便网络应用程序 也是 PWA 可以在没有互联网的情况下使用 我找到了一些
  • 如何滚动到div内的元素?

    我有一个滚动的div我想在点击它时发生一个事件 它会强制执行此操作div滚动以查看内部元素 我写的JavasCript是这样的 document getElementById chr scrollIntoView true 但这会在滚动时滚
  • Flux + React.js - 操作中的回调是好还是坏?

    让我解释一下我最近遇到的问题 我有 React js Flux 驱动的应用程序 有一个列表显示文章数量 注意 应用程序中有多个不同的列表 和文章详情查看在里面 但每个列表只有一个 API 端点 它返回文章数组 为了显示我需要的详细信息fin
  • 如何访问另一个 mobx 商店中的 mobx 商店?

    假设以下结构 stores RouterStore js UserStore js index js each of Store jsfiles 是一个 mobx 存储类 包含 observable and action index js只
  • React无限滚动scrollableTarget动态获取id?

    我在我的项目中使用react infinite scroll component 如何让scrollableTarget动态获取item id 我试过这样scrollableTarget item id 但它不起作用 必须与该 div 具有
  • 根据用户输入使用 Jquery 显示/隐藏字段

    li class numeric optional li
  • Jquery,清除/清空 tbody 元素的所有内容?

    我认为这会相当简单 但似乎空方法无法清除我拥有的 tbody 如果有人知道执行此操作的正确方法 我将不胜感激 我只想删除 tbody 中包含的所有内容 到目前为止我正在尝试 tbodyid empty HTML table tbody tr
  • Jquery:选择菜单以显示和隐藏某些div元素

    我正在创建一个选择菜单 根据所选选项显示和隐藏某些 div 像这样的东西
  • 需要js、d3 和 nvd3 集成

    我面临整合的问题要求 questions tagged requirejs with d3 questions tagged d3 and nvd3 questions tagged nvd3 我找到了一个使用 require 的简单解决方
  • 有没有非常轻的灯箱? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 当选择下拉列表中的某些值时,取消选中复选框

    当我从下拉列表中选择某个值或用户未从下拉列表中选择任何值时 我需要取消选中复选框 我现在正在使用 Jquery 这是我现在使用的代码 但它不起作用 Script
  • Django 与谷歌图表

    我试图让谷歌图表显示在我的页面上 但我不知道如何将值从 django 视图传递到 javascript 以便我可以绘制图表 姜戈代码 array Year Sales Expenses 2004 1000 400 2005 1170 460
  • Express.js Passport认证自动失败跳过策略

    UPDATE 我已将代码从护照本地注册内部移至单独的处理程序 并且运行良好 问题在于 Passport 和本地注册的使用 但我不知道为什么 我使用 Node js Express Passport 进行身份验证和注册设置 这是以前使用过的标
  • 如何在 SVG 元素上使用箭头标记?

    我需要在 d3 js 中创建一个箭头 但我找到的只是带有节点图的示例 我需要的是简单地制作一个从 A 点到 B 点的箭头 我尝试实现以下示例中的部分代码 http bl ocks org 1153292 http bl ocks org 1
  • Bootstrap 3 / 显示模式不适用于 javascript 方式

    我用Modal http getbootstrap com javascript modalsBootstrap 3 0 的功能 我有这个代码 a href myNestedContent Open the modal containing
  • 如何调试 Gulp 任务?

    如何调试我的中定义的 gulp 任务gulpfile js使用诸如 Google Chrome 调试器之类的调试器逐行单步执行任务的代码 对于 Node js 6 3 版本 您可以使用 inspect flag https nodejs o

随机推荐

  • sc.exe config“服务名称”obj=“域\用户”密码=“密码”不起作用

    我想从 cmd 设置服务的密码 我有选择 sc exe config 服务名称 obj 域 用户 密码 密码 当我执行时 它显示 SC 更改服务配置成功 如果我启动服务 我正进入 状态 Windows 无法在本地计算机上启动 service
  • SQL Server 2012 中的行级安全性

    SQL Server 2012 中的行级安全性有什么新变化吗 在 2008 年及以下 唯一的方法是使用 Views 2012 年他们宣布某物 like Row Level Security in Tabular Models 这与表上的 R
  • NSCollectionViewItem 从不实例化

    我在这里有点迷失 我创建了一个像 colorPicker 一样的按钮 单击它会在弹出窗口中显示一个 collectionView 我首先使用包含视图 collectionView 嵌入为scrollView clipView 的nib fi
  • 如何在 Nvidia Shield 上正确计时 Android RenderScript 代码

    我在 RenderScript 中实现了一个小型 CNN 想要分析不同硬件上的性能 在我的 Nexus 7 上 时间有意义 但在 NVIDIA Shield 上则不然 CNN LeNet 采用队列中的 9 层实现 计算按顺序执行 每一层都是
  • python将数字添加到字符串[重复]

    这个问题在这里已经有答案了 尝试将 count int 添加到字符串末尾 网址 Code count 0 while count lt 20 Url http www ihiphopmusic com music page Url Url
  • 如何使用 bluebird 来 promisify MySql 函数?

    前段时间我决定从 PHP 切换到 Node 在我的第一个项目中 我不想使用任何 ORM 因为我认为我不需要让我的生活变得如此复杂 学习另一件事 目前我正在学习 Node 和 Angular 因此我决定使用 mysql 包 而不需要使用 my
  • ng-focus 和 ng-blur 事件在 Angularjs 中未触发

  • Android“repo”文档可用吗?

    关于用于 Android 存储库管理的谷歌 repo 工具的唯一文档是 https sites google com a android com opensource download using repo 这比什么都没有 可用的帮助与键入
  • SwingWorker 的原理是什么?

    据我所知 它用于在 swing 应用程序中调度一个新线程来执行一些 后台 工作 但是使用它而不是 普通 线程有什么好处 使用新线程并在完成时使用 SwingUtilities invokeLater 调用某些 GUI 方法是不一样的 我在这
  • 如何在 SQL Server 中创建外键?

    我从来没有为 SQL Server 手工编码 过对象创建代码 并且外键声明在 SQL Server 和 Postgres 之间似乎是有区别的 到目前为止 这是我的 sql drop table exams drop table questi
  • 为什么我的 Python App Engine 应用程序使用 Translate API 时出现 ImportError 错误:没有名为 apiclient.discovery 的模块?

    我收到这个错误谷歌应用程序引擎Python使用过谷歌翻译API 但不知道怎么解决
  • 我可以将 PHPUnit 打包为 phar 吗?

    我想将 PHPUnit 和各种其他测试依赖项打包到 phar 中并将其放入 svn 中 这样我就可以在任何客户端机器上运行 phpunit 而不需要 pear 这可以做到吗 当前状态 phpunit phar 的工作已开始于phpunit
  • 使用类中的静态函数而不命名类

    如何访问类中的函数而不必每次都命名该类 我知道如何使用 using 这样我就不必命名命名空间 但我希望有一种方法可以处理这个静态函数 这样我就可以像调用同一个类中的函数一样调用它们 使用静态yournamespace yourclassna
  • Date.getTime() 与 Date.getTime() 对比日期.now()

    我注意到 now 只能由 Date 对象调用 getTime 只能由日期实例调用 var dd1 new Date console log dd1 now Throws error gt TypeError Object Mon Aug 1
  • 如何在 TypeScript 文件中调用 NodeJS?

    如何加载常规 NodeJS 模块 来自node modules 从一个TypeScript class 当我尝试编译时 ts文件包含 var sampleModule require modulename 编译器提示我不能在此范围内使用 r
  • 核心数据加密

    我有关于核心数据加密的问题 我将一些敏感的用户数据存储在 Core Data SQLite 数据库中 关键值都是可转换的 我使用 AES256 来 即时 加密和解密它们 包括每个值的单独 IV 加密密钥是用户选择的密码的 SHA512 哈希
  • 获取流中符合条件的第一个元素

    如何获取流中与条件匹配的第一个元素 我已经尝试过这个但不起作用 this stops stream filter Stop s gt s getStation getName equals name 该标准不起作用 过滤器方法是在 Stop
  • 使用 Powershell 将 XML 转换为哈希表

    我想转换 XML
  • 扩展打字稿接口

    在 TypeScript 中扩展 Express Request 接口时 我遇到了这个问题 我想使用外部库定义 但无法导入外部库 因为它会导致错误 gt 错误 4 28 TS1147 内部模块中的导入声明无法引用外部模块 编辑 这是一个 d
  • ReferenceError:未定义要求

    我目前正在开发 Mozilla Firefox 插件 我已经设置了一个面板并附加了一个内容脚本 我需要在内容脚本和 main js 之间进行通信 我为此使用 addon sdk 的端口 api 然而由于某种原因 我什至无法在两者之间传递简单