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
示例,它必须是脚本顶层此
。如果他指的是模块顶层此
,他将得到一个与问题无关的未定义错误。