【发布时间】:2015-08-04 16:06:22
【问题描述】:
我正在尝试编写一个 Tampermonkey 脚本,它将 document.location 和标题收集到字典中。谷歌了一下,发现我应该使用某种全局变量,但它没有按我的意愿工作。
这是脚本:
// ==UserScript==
// @name My Fancy New Userscript
// @namespace http://your.homepage/
// @version 0.1
// @description enter something useful
// @author You
// @match *://*/*
// @grant none
// ==/UserScript==
if (unsafeWindow.resources == undefined) {
var unsafeWindow.resources = [];
}
var host = window.location;
unsafeWindow.resources.push(host);
console.log(unsafeWindow.resources);
运行时出现以下错误:
错误:脚本“My Fancy New Userscript”的执行失败! unsafeWindow 没有定义
也许我正在尝试做的事情甚至不可能?
更新: 试图清楚一点。最终结果应生成一个字典,该字典将以 document.location 作为键,字典包含该位置的标头名称和标头值作为值。
{document.location = {"Headername" = "Header value", "Headername" = "Header value"}}
最终结果将用于生成包含字典中信息的表。像这样的:
/帕特里克
【问题讨论】:
-
unsafeWindow.resources 只要未在某处定义(您至少需要定义 unsafeWindow),就永远不会工作。此外,您能否更清楚地了解“字典”的含义?您需要将这些存储在本地还是什么?
-
已更新。感谢您的评论!
-
我仍然不明白你到底想要完成什么,更清楚的是:最大的问题是:你需要保留这些信息存储还是..?简而言之,您试图获取 DOM 加载的每一个资源并将其存储在一个对象中以便稍后打印一个表,这是您想要做的吗?无论如何,请记住,使用 unsafeWindow 可能会为您的用户脚本打开一些安全漏洞,请先看看这个:developer.mozilla.org/en-US/Add-ons/SDK/Guides/Content_Scripts/…
-
是的,信息应该存储在Javascript变量中以备后用。生成信息的脚本本身将通过书签(运行 javascript 的书签)执行。它不会公开,因为我打算只在我们的网站上手动运行它,所以安全漏洞不会是一个大问题。感谢您的链接,我会确保阅读它。 /帕特里克
-
哦,是的。该信息将用于稍后按需生成表格。 :)