使用 require.js 在 Chrome 扩展程序中调试内容脚本时遇到问题

2024-03-19

要在内容脚本中加载模块,我使用以下代码(源http://prezi.com/rodnyr5awftr/requirejs-in-chrome-extensions/ http://prezi.com/rodnyr5awftr/requirejs-in-chrome-extensions/):

require.load = function (context, moduleName, url) {
    var xhr;
    xhr = new XMLHttpRequest();
    xhr.open("GET", chrome.extension.getURL(url) + '?r=' + new Date().getTime(), true);
    xhr.onreadystatechange = function (e) {
        if (xhr.readyState === 4 && xhr.status === 200) {
            eval(xhr.responseText);
            context.completeLoad(moduleName)
        }
    };
    xhr.send(null);
};

通过 Chrome 控制台调试时会出现问题。每当我的模块之一出现错误时,它只会报告匿名函数中发生的错误,但不会通知我发生错误的是哪个 require.js 模块或该模块中的行,而是始终指向上面的脚本。

由于很多人在使用带有 chrome 扩展的 require.js 时似乎使用了上述代码的不同变体,因此必须有一种简单的方法可以在调试控制台中获取更多信息,我只是不知道那是什么:)。

感谢您的帮助!!

更新 4/1:将上面的 eval() 语句更改为使用 Function() 似乎已经解决了问题,因为 chrome 控制台添加了附加信息。 (这项工作的功劳归功于此question https://stackoverflow.com/questions/6684046/javascript-eval-method).

我意识到这两个功能不能完全互换(请参阅这个问题 https://stackoverflow.com/questions/4599857/is-eval-and-new-function-the-same-thing)。如果有人知道上面代码中使用 Function() 而不是 eval() 的任何陷阱,请告诉我!


你可以改变线路

        eval(xhr.responseText);

by

        eval(xhr.responseText + "\n//@ sourceURL=" + url);

这样,您将看到源代码面板中原始 url 下列出的所有评估代码。

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

使用 require.js 在 Chrome 扩展程序中调试内容脚本时遇到问题 的相关文章

  • Javascript树遍历算法

    我需要帮助以深度优先的方式遍历树结构 我无法想出一个算法来正确地做到这一点 我的输入是这样的 A B C 1 2 a b c d 输出应采用以下形式 A 1 a A 1 b A 1 c A 1 d A 2 a A 2 b A 2 c A 2
  • Javascript 与 Python 关于 Python 'map()' 函数的比较

    Python中有一个函数叫做map这可以让你去 map someFunction x y z 并继续应用该功能的列表 是否有与此功能等效的 JavaScript 我现在刚刚学习Python 虽然我被告知javascript是函数式语言 但我
  • 您可以使用 JavaScript 触发自定义 HTML5 表单错误吗?

    如果我有一个像这样的输入
  • Google 饼图未显示所有数据行

    我正在尝试绘制人口与国家名称的关系图 我发现 Google 可视化库仅渲染前几个 实际上数字似乎是随机的 具体取决于我使用的数据 有时添加 其他 条目 但它没有t 实际上具有其余条目的值 Example 1 With all countri
  • 通知用户消息仍在输入中

    我正在使用 Laravel 5 6 7 Socket IO 和 vue js 我没有使用 Pusher 和 redis 下面是我的代码 用于向与我一对一聊天的用户发送消息 var url http localhost 6001 apps M
  • JavaScript 变量赋值与 OR 对比 if 检查[重复]

    这个问题在这里已经有答案了 在 JavaScript 中 我最近意识到你可以使用 OR 赋值的逻辑运算符 我想知道这是否被认为是不好的做法 特别是 我有一些具有可选数组输入的函数 如果输入是null or undefined我应该将它设置为
  • ngModel.$parsers 忽略 ng-model 值末尾的空格

    我有这样的指令 directive noWhitespace parse function parse return restrict A require ngModel link function scope element attrs
  • 从未定义解构时避免错误

    可以说我有这个代码 const x y point Babel 会将其变成 var point point x point x y point y 这很好 但是如果点未定义怎么办 现在我得到一个错误 Cannot read property
  • 向对象添加元素

    我需要填充一个 json 文件 现在我有这样的东西 element id 10 quantity 1 我需要添加另一个 元素 我的第一步是使用该 json 将该 json 放入对象类型中cart JSON parse 现在我需要添加新元素
  • 在 JavaScript 中比较表单中的两个数字

    当我尝试比较不同的数字时 数字发生变化 但文本部分保持不变 这只发生在较大 较小的情况下 而不会发生在 NaN 或相等的情况下 这是我的代码 function check var a document getElementById a va
  • 引入 V8 后,Google Apps 脚本无法为其他用户完全执行

    我编写了一个脚本 得到了这里好心人的大力帮助 该脚本使用 Google Sheets 脚本复制 Google Drive 上的文件夹 和内容 它运行了很长一段时间 但后来我启用了 V8 引擎 现在已禁用 问题是 它仍然适用于我 也许还有其他
  • 在 vue.js 模板中包含外部脚本

    我是 Vue js 和 web pack 的新手 所以我决定使用 vue cli webpack 来构建初始应用程序 我试图包含一个外部脚本 例如组件 不需要的模板中 但是 Vue 警告这是不允许的 我的 index html 文件与最初生
  • Web SQL 数据库 + Javascript 循环

    我正在尝试解决这个问题 但我自己似乎无法解决 我正在使用 Web SQL DB 但无法让循环正常使用它 I use for var i 0 i lt numberofArticles 1 i db transaction function
  • 使用 JavaScript 的计时器

    我想使用java脚本实现计时器 我想随着间隔的变化而减少计时器 Example假设我的计时器从 500 开始 我想要根据级别减少计时器 例如1 一级定时器应减1 且递减速度应较慢 2 2级定时器应递减2 递减速度应为中等3 3级定时器应减3
  • 常规 JavaScript 可以与 jQuery 混合使用吗?

    例如 我可以采用这个脚本 来自 Mozilla 教程 https developer mozilla org en Canvas tutorial Basic usage
  • ThreeJS无法加载Json文件

    首先 我已经读过这个问题 https stackoverflow com questions 17201888 three js exporter export object not working with jsonloader r58没
  • 使用 React React-router 登录后重定向到主页,并且 usenavigate 不起作用?

    我希望用户在成功登录后重定向到主页 我将用户登录的 api 请求的数据存储在一个名为 currentUser 的变量中 因此如果 currentUser 为 true 它应该重定向到主页 这就是我处理登录请求的方式 export const
  • 错误:创建 React Native 项目版本 0.59.9 时找不到 template.config.js

    当我尝试创建 React Native 项目版本 0 59 9 时 出现以下错误 错误错误 无法在 react native 模板中找到 var folders zc h93bvpb573q24 5ynvgkn1wc0000gn T rnc
  • 如何在 JavaScript 中获取浮点数的小数位?

    我想要的是与 Number prototype toPrecision 几乎相反的 这意味着当我有数字时 它有多少位小数 例如 12 3456 getDecimals 4 对于任何想知道如何更快地完成此操作 无需转换为字符串 的人 这里有一
  • 使用 Lodash 将对象键转换为具有键值数量的数组[重复]

    这个问题在这里已经有答案了 我有一个产品对象 products bread 1 milk 2 cheese 2 chicken 1 我想要一个包含产品名称的数组 如下所示 products bread milk milk cheese ch

随机推荐

  • 如何列出导入的模块及其版本?

    我需要列出所有导入的模块及其版本 我的一些代码仅适用于特定版本 我想保存包的版本 以便将来再次查找 列出包的名称有效 modules list set sys modules set globals print modules 但如果我现在
  • 注入自动映射器

    我一直致力于将 AutoMapper 注入控制器 我喜欢 Code Camp Server 的实现 它围绕 AutoMapper 的 IMappingEngine 创建一个包装器 依赖注入是使用 StructureMap 完成的 但我需要在
  • 有什么办法让 gmaps4rails 在街景中打开地图吗?

    我尝试过更改缩放级别 但它始终保持在地图模式 在wiki上也找不到任何信息 任何帮助或其他建议将不胜感激 最终只使用了 Google 的 Javascript API 事情是这样的 pos new google maps LatLng va
  • 如何将 Knockout js 模型绑定到向导风格的 UI

    我正在使用 Knockout js 我有一个包含对象数组的视图模型 我希望允许用户使用向导样式界面编辑其中一个对象 我遇到的问题是向导将根据所做的选择显示不同的步骤 例如 如果用户在步骤 1 中选择 是 则我将显示步骤 2a 如果用户在步骤
  • 在读取文件之前检查文件是否已打开?

    我正在尝试制作一个小程序 它以非常频繁的间隔 每秒几次 读取本地文件系统 用户计算机 上的文件 然后通过 javascript 将文件的内容提供给网页 小程序需要读取的文件由用户计算机上的程序高频更新 我担心的是 如果小程序在文件更新过程中
  • toDF 的值不是 org.apache.spark.rdd.RDD 的成员

    例外 val people sc textFile resources people txt map split map p gt Person p 0 p 1 trim toInt toDF value toDF is not a mem
  • 在 GNU C 内联汇编中编写 Linux int 80h 系统调用包装器 [重复]

    这个问题在这里已经有答案了 我正在尝试使用内联汇编 我读过这一页http www codeproject com KB cpp edujini inline asm aspx http www codeproject com KB cpp
  • Python 日期时间:昨天的所有项目

    在 Python 中 如果我想检查昨天的所有项目 我会这样做 from datetime import datetime timedelta if datetime datetime today timedelta days 2 lt it
  • C# 将文本转语音保存到 MP3 文件

    我想知道是否有办法将文本到语音数据保存为 mp3 或 Wav 文件格式以便稍后播放 SpeechSynthesizer reader new SpeechSynthesizer reader Rate int 2 reader Speak
  • Windows 键的键码?

    有没有keyCodeWindows 键或用 Javascript 或 jQuery 检测何时按下的方法 I ve dug through StackOverflow and have found how to detect command
  • 如何在 JavaScript 中一次分配多个变量?

    有没有办法在 JavaScript 中执行多重赋值 如下所示 var a b one two 这相当于 var a one var b two 在 ES6 中你可以这样做 var a b one two 上面的代码是 ES6 表示法 称为数
  • 是否可以使用 Spring XML 访问字符串索引的 getter?

    Spring上下文设置XML语言中是否有 字符串索引 getters的概念 假设我有Persongetter 具有以下原型 class Person Person getRelative String relativeName 我可以用类似
  • Java引用同一目录中的类

    我创建了一个PairJava 中的类 类似于 C 对 并且无法从不同的 java 文件引用它 我正在一个 Java 文件中工作 我们称之为fileA在同一目录中Pair class 另外 我还写过package current direct
  • 使用 MVC2 的 AJAX 请求中的 CSRF 保护

    我正在构建的页面很大程度上依赖于 AJAX 基本上 只有一个 页面 并且每次数据传输都是通过 AJAX 处理的 由于浏览器端过度乐观的缓存会导致奇怪的问题 数据未重新加载 因此我必须使用 POST 执行所有请求 也读取 这会强制重新加载 现
  • React Native/Redux 应用程序中可能存在导航问题

    在使用 Redux 在大型 React Native 应用程序中导航期间 所有访问的场景 导航堆栈中的场景 都保持安装状态 当从最后一个场景组件调度任何动作时 所有这些场景都会接收道具并按照访问它们的顺序进行渲染 它会导致调度和最后一个场景
  • 如何使用消息代理和数据库设计分布式应用程序?

    我想实现一个分布式销售点系统 有点像中描述的系统销售点应用程序架构建议 https stackoverflow com questions 2454629 point of sale app architecture advice 它是一个
  • 如何pickle python 函数及其依赖项?

    作为这个问题的后续 有没有一种简单的方法来pickle python 函数 或以其他方式序列化其代码 https stackoverflow com questions 1253528 is there an easy way to pic
  • 为什么 JVM 不从数据库加载类?

    为什么Java虚拟机不从数据库加载类 类似于 NET的GAC 据我了解 目前它必须读取并扫描类路径上每个 JAR 的清单才能找到类文件 使用数据库 如 SQLite 不会缩短启动时间吗 之所以没有 是因为没有人将其添加到标准库中 此外 出于
  • 在分页页脚中,如果没有找到记录,Page [1 ] of 0 不是应该显示“Page [0 ] of 0”吗?

    我注意到 如果没有要返回的记录 那么分页页脚不应该说 0 of 0 而不是 1 of 0 吗 另外 分页文本框不应该也被禁用吗 这是我发送回 jqGrid 的 JSON 响应 total 0 page 0 records 0 rows 我正
  • 使用 require.js 在 Chrome 扩展程序中调试内容脚本时遇到问题

    要在内容脚本中加载模块 我使用以下代码 源http prezi com rodnyr5awftr requirejs in chrome extensions http prezi com rodnyr5awftr requirejs in