问题标签 [greasemonkey]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
9210 浏览

javascript - 执行 JavaScript 以呈现 HTML 以进行服务器端缓存

网站提供了许多小部件,这些小部件实际上是 JavaScript 的一部分,它们通过DOM操作生成 HTML 或document.write(). 我不想通过额外的请求进一步降低浏览器的速度,并相信另一个提供程序快速、可靠且不会更改小部件输出,我想执行* JavaScript 以生成呈现的 HTML,然后保存该 HTML 源。

我研究过的事情似乎不可行或太难了:

  1. 链接浏览器(不是 lynx!
  2. 无头使用 Xvfb 加 Firefox 加 Greasemonkey ( yikes )
  3. 全 Java 浏览器工具包 Cobra(最好的选择!

有任何想法吗?

** 显然你不能真正完全执行 JavaScript,因为它不一定有退出路径,但你明白了。

0 投票
2 回答
385 浏览

firefox - 如何在编辑时禁用 GreaseMonkey 中的热键?

我在 GreaseMonkey 脚本中使用Ctrl+ Left/ Ctrl+Right作为返回/前进页面的热键。它似乎工作正常,但如果我在文本编辑区域,我想禁用此行为。我正在尝试使用 document.activeElement 来获取页面活动元素并测试它是否是可编辑区域,但它总是返回“未定义”。

0 投票
4 回答
26983 浏览

javascript - 使用 HTTP 身份验证自动登录的 GreaseMonkey 脚本

我有很多我在工作中编写的 GreaseMonkey 脚本,它们会自动将我登录到我们这里的内部站点。除了我们的时间表应用程序使用 HTTP 身份验证之外,我已经设法为这些站点中的几乎每个站点编写了一个脚本。

有没有办法可以使用 GreaseMonkey 自动登录这个网站?

编辑:我知道浏览器中的存储密码功能,但我的脚本更进一步,通过检查我是否在加载时(通过遍历 HTML)登录到站点,然后将帖子提交到登录页面。这消除了必须加载网站、进入登录页面、输入我的凭据,然后点击提交的步骤

0 投票
3 回答
26800 浏览

javascript - 如何在 GreaseMonkey 脚本中实现“DOM Ready”事件?

我正在尝试将我的 GreaseMonkey 脚本从在 window.onload 上触发到 window.DOMContentLoaded 修改,但此事件永远不会触发。

我正在使用 FireFox 2.0.0.16 / GreaseMonkey 0.8.20080609

是我试图修改的完整脚本,更改:

0 投票
3 回答
2321 浏览

javascript - 从脚本中访问 Greasemonkey 元数据?

有什么方法可以让我的脚本检索在其自己的标头中声明的元数据值?我在 API 中看不到任何有希望的东西,除了GM_getValue(). 这当然会涉及特殊的名称语法。我试过了,例如:GM_getValue("@name").

这里的动机是避免冗余规范。

如果不能直接访问 GM 元数据,也许有一种方法可以读取脚本本身的正文。它肯定在内存中的某个地方,解析它不会太难"// @"。(在我的情况下这可能是必要的,因为我真正感兴趣的值是@version,这是userscripts.org读取的扩展值。)

0 投票
10 回答
3732 浏览

javascript - Greasemonkey的隐藏功能

人们在他们的 Greasemonkey 脚本中使用了哪些鲜为人知但有用的功能和技术?

(请,每个答案只有一个功能。)

类似主题:

0 投票
2 回答
4300 浏览

firefox - Greasemonkey 会导致显示的标题改变吗

我想根据从页面中获取的信息更改页面中显示的标题(例如,显示收件箱消息的数量)

document.getElementsByTagName('title')[0].innerHTML="foo";确实会更改标题标签,但是当发生这种情况时,Firefox 不会更新显示的标题(在窗口和标签中)。

这可能吗?

0 投票
6 回答
537 浏览

javascript - Greasemonkey:爱它还是恨它?

作为用户,我们喜欢 Greasemonkey 的强大功能。作为开发人员,它会使事情复杂化。

有些主张防御性地禁用用户脚本;其他人愿意为保卫他们而死。

有中间立场吗?我们如何才能减少用户和无良广告商之间进化性军备竞赛的威胁?

0 投票
4 回答
1162 浏览

php - 自动从网页获取报告

我是一名 Java 开发人员,我有一个关于自动执行给我的任务的问题。

我每天必须登录 3 次,登录我们工作中的这个网站,选择一些表单元素,然后单击提交以打印出报告。

我想知道如何编写某种脚本来自动执行此任务?我应该从哪里开始?我应该用什么语言来做?我在想PHP可能能够做到这一点,甚至可能是一个greasemonkey脚本?

非常感谢。

0 投票
13 回答
40929 浏览

javascript - 唯一的元素 ID,即使元素没有

我正在编写一个 GreaseMonkey 脚本,在其中迭代一堆元素。对于每个元素,我需要一个字符串 ID,以后可以使用它来引用该元素。元素本身没有id属性,我无法修改原始文档以赋予它属性(尽管我可以在脚本中进行 DOM 更改)。我无法将引用存储在我的脚本中,因为当我需要它们时,GreaseMonkey 脚本本身就会超出范围。例如,有什么方法可以获取浏览器使用的“内部”ID?仅 Firefox 的解决方案很好;可以应用于其他场景的跨浏览器解决方案会很棒。

编辑:

  • 如果 GreaseMonkey 脚本超出范围,您以后如何引用这些元素?他们的 GreaseMonkey 脚本正在向 DOM 对象添加事件。我无法将引用存储在数组或其他类似机制中,因为当事件触发时,数组将消失,因为 GreaseMonkey 脚本将超出范围。因此,事件需要某种方式来了解附加事件时脚本所具有的元素引用。并且有问题的元素不是它所附加的元素。

  • 你不能只在元素上使用自定义属性吗?是的,但问题在于查找。我不得不求助于遍历所有元素,以寻找将自定义属性设置为所需 id 的元素。这当然可以,但在大型文档中可能非常耗时。我正在寻找浏览器可以进行查找工作的东西。

  • 等等,你能不能修改文件?我无法修改源文档,但我可以在脚本中进行 DOM 更改。我会在问题中澄清。

  • 你不能使用闭包吗?Closuses 确实有效,尽管我最初认为它们不会。看我后面的帖子。

这听起来像是对以下问题的回答:“我可以使用一些内部浏览器 ID 吗?” 没有。”