gom*_*ost 5 javascript greasemonkey userscripts
我是JavaScript和Greasemonkey的noob,我想写一个简单的脚本.
我知道Greasemonkey用一个匿名函数包装你的代码,所以你的变量在离开当前页面后将不存在.但是,我需要一个全局变量.我试图使用unsafeWindow和window对象,如下所示:
if (window.myVar == undefined) {
window.myVar = "myVar";
}
Run Code Online (Sandbox Code Playgroud)
如果我刷新页面,则条件的值始终为true.
有没有办法在Greasemonkey中使用全局变量?
eri*_*old 16
您必须使用unsafeWindow才能创建可用于页面javascript范围的全局变量.
if (unsafeWindow.myVar == undefined) {
unsafeWindow.myVar = "myVar";
}
Run Code Online (Sandbox Code Playgroud)
但是当你刷新页面时,你不能指望这个变量存在,因为普通的javascript不能那样工作.如果您想在页面加载中保存一些数据,那么我建议您使用GM_setValue和GM_getValue
您正在使用全局变量,但全局变量仅在页面存在时有效,因此当您刷新时,您将清除所有全局变量。在页面刷新后保存数据的唯一方法是使用 cookie、上传到服务器或 HTML5 存储 API。对于greasemonkey,您可能会想要使用cookie。