我知道,出于设计原因,requirejs不提供在noContext模式下加载自身的方法,绑定到不同的变量。是否有可能以某种方式手动执行此操作,或者是否需要使用特定的单词“require”来执行其代码?我知道它需要“require”和“requirejs”全局变量才能工作 - 是否可以更改这些名称?
一点背景:我正在构建Chrome扩展,需要在页面上加载requireJS以加载相当数量的模块。但是,有些页面(upworthy.com和slate.com是两个突出的例子)已经将关键功能绑定到名称“require”(在适用的情况下,它们使用requirebin或browserify)。因此,我希望加载requireJS,而不会干扰已经分配的任何本机功能。
答案 0 :(得分:1)
content scripts的JavaScript执行环境与页面分离,因此您不应该有任何命名空间冲突。
如果您确实需要inject the script in the page,那么我强烈建议您使用r.js生成一个单独的JavaScript文件,该文件包含在匿名自调用函数中。然后,脚本的require
变量不会与页面中的变量冲突。