Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 捕获“;这";网页价值_Javascript_Webpack_Firefox Addon_Firefox Addon Webextensions - Fatal编程技术网

Javascript 捕获“;这";网页价值

Javascript 捕获“;这";网页价值,javascript,webpack,firefox-addon,firefox-addon-webextensions,Javascript,Webpack,Firefox Addon,Firefox Addon Webextensions,我目前遇到以下错误: 长话短说,我需要访问this.browser,而不是window.browser。如果我用console.log(this.browser)替换我的网页生成的文件,我会得到正确的窗口变量,而如果我访问window.browser我会得到未定义的窗口变量。建议的修复方法是访问此.browser,但我不确定如何将其作为网页模块: 我有一个简单的browser.js文件,用于导出浏览器信息: export default window.chrome || window.brows

我目前遇到以下错误:

长话短说,我需要访问
this.browser
,而不是
window.browser
。如果我用
console.log(this.browser)
替换我的网页生成的文件,我会得到正确的窗口变量,而如果我访问
window.browser
我会得到未定义的窗口变量。建议的修复方法是访问
此.browser
,但我不确定如何将其作为网页模块:

我有一个简单的browser.js文件,用于导出浏览器信息:

export default window.chrome || window.browser || this.browser;

因为我们处于函数上下文中,
window.browser
this.browser
以及
window.chrome
(我在firefox中开发这个)都是未定义的。如何通过webpack访问
this。浏览器
(它在全局范围内)?

脚本执行上下文(与模块上下文相反)的顶级范围内的此
就是。网页中的全局对象是
窗口
对象,但在其他环境(例如node.js、web workers或webextensions)中,它可以是其他对象。在webextensions的情况下,它是一个将委托给不安全窗口对象作为其原型的对象

因此,由于顶层
这个
是全局对象,所以问题归结为获取全局对象,对于全局对象有
小提示:要在webextensions中使用eval,您必须在清单中使用eval

要总结webextensions中当前的对象关系,请执行以下操作:

顶级
是全局对象

this.prototype
是不受信任窗口的安全代理,提供标准窗口属性的原始视图。由于变量查找的工作方式以及
window.window
的自引用性质,当不存在局部变量时,通过原型查找
this.window
和委托给全局对象的
window
也是如此


unsafeWindow==window.wrappedJSObject
是安全代理的目标,它是不受信任网页本身的窗口对象和全局对象

在脚本执行上下文(与模块上下文相反)的顶级范围内,此
只不过是。网页中的全局对象是
窗口
对象,但在其他环境(例如node.js、web workers或webextensions)中,它可以是其他对象。在webextensions的情况下,它是一个将委托给不安全窗口对象作为其原型的对象

因此,由于顶层
这个
是全局对象,所以问题归结为获取全局对象,对于全局对象有
小提示:要在webextensions中使用eval,您必须在清单中使用eval

要总结webextensions中当前的对象关系,请执行以下操作:

顶级
是全局对象

this.prototype
是不受信任窗口的安全代理,提供标准窗口属性的原始视图。由于变量查找的工作方式以及
window.window
的自引用性质,当不存在局部变量时,通过原型查找
this.window
和委托给全局对象的
window
也是如此


unsafeWindow==window.wrappedJSObject
是安全代理的目标,它是不受信任网页本身的窗口对象和全局

如何导出全局变量的默认chrome | |浏览器
?(可能使用
typeof
checks)@Bergi将此创建为一个答案,我会接受它。不知道,这只是一个解决办法。实际的问题-如何在网页包(和babel transpiled?)模块中使用
this
访问全局对象-仍然存在。@Bergi访问
浏览器
,无需任何修改器(
this
窗口
)似乎正好返回我需要的内容。对于全局变量,如何导出默认chrome浏览器?(可能使用
typeof
checks)@Bergi将此创建为一个答案,我会接受它。不知道,这只是一个解决办法。实际的问题——如何使用网页包(和babel transpiled?)模块中的
this
访问全局对象——仍然存在。@Bergi访问
浏览器
,而不使用任何修改器(
this
window
)似乎正好返回了我需要的结果。鉴于webpack的OP演讲,他可能正在使用ES6模块,其中,“顶级”模块范围没有该
值+1在间接
eval
上,应该始终work@Bergi考虑到他链接到的bug和
控制台.log
示例,它必须是脚本顶层
。如果他指的是模块顶级
,他将得到一个与问题无关的未定义错误。鉴于webpack的OP谈话,他可能使用ES6模块,“顶级”模块范围没有该
值+1在间接
eval
上,应该始终work@Bergi考虑到他链接到的bug和
控制台.log
示例,它必须是脚本顶层
。如果他指的是模块顶层
,他将得到一个与问题无关的未定义错误。