问题标签 [tampermonkey]

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 投票
2 回答
3076 浏览

mouseevent - 如何让greasemonkey在新标签中一一打开大量链接?

有一些链接看起来像上面


我停在第一步。我无法通过脚本触发器打开它们中的每一个。这是我到目前为止的:


但它不起作用,也不知道如何让它们在新标签中一一打开。

0 投票
2 回答
17228 浏览

javascript - 在同一页面上多次运行 Greasemonkey 脚本?

我对 Greasemonkey、javascript,实际上是所有 UI 的东西都是全新的。

要求:用户脚本在页面加载后由 GS 运行一次。但是,我需要多次运行相同的脚本而不刷新

用例:例如,Amazon.com 搜索使用 Ajax。我需要在搜索结果中嵌入自定义元素。

每次在同一页面中发生搜索时,我都需要将我的内容与结果一起注入到 search-results-div 中(没有页面刷新)

我当前的脚本仅在页面刷新时运行。

我希望上面的解释清楚。请帮忙。

0 投票
1 回答
4822 浏览

javascript - 如何在返回响应之前获取 AJAX get-request 以等待页面呈现?

我正在为此站点(Site1)中的页面编写 Greasemonkey 脚本。Site1 有各种交易和优惠,我的 GM 脚本旨在执行以下操作:

当访问 Site1 上的报价时,脚本会查询 Site2以了解该酒店是否也在 Site2 上列出。如果是这样,则在 Site1 上显示来自 Site2 的搜索结果。

问题是 Site2 显示一个进度条(“加载结果”),然后显示结果。因此我的 Ajax 请求总是返回空结果,看起来像这样(见红框部分):(
点击查看大图)未完成的结果


但是,它实际上应该具有来自 Site2 的搜索结果的完整内容,如下所示:(
点击查看大图)完成的结果


我尝试过同步 Ajax 请求,GM_xmlhttpRequest但无济于事。

这是站点 2 有问题的进度条:(
点击查看大图)状态栏


在将响应返回给 Site1 之前,如何获取 AJAX 请求以等待 Site2 上的搜索完全呈现?

作为参考,我的完整工作脚本代码位于 pastebin.com

这是相关的片段:

0 投票
1 回答
7759 浏览

javascript - 如何从用户脚本访问 iframe 的 javascript?

我正在尝试使用 Chrome 用户脚本或 Tampermonkey 脚本来修改具有此结构的页面:

iframe 是同源的。

我需要访问iframe#main. 我以为我可以用unsafeWindow它来获得它,但我什么也没得到或undefined退回。

我尝试了很多事情:

  • 尝试在 中创建一个新的脚本元素iframe,但即使使用$('frame#main').contents().append(script)or$('frame#main').contents()[0].createElement('script')

  • window.frames["#main"].contentWindow返回未定义。

我已经尝试了许多其他我现在不记得的事情,但是我已经用尽了所有的想法,并且觉得我在打字比任何重要的东西都多。
我不知道如何使用unsafeWindowiFrame。

0 投票
1 回答
44280 浏览

javascript - Chrome/Tampermonkey 用户脚本存储在文件系统的什么位置?

Chrome/Tampermonkey 用户脚本存储在文件系统的什么位置?

我想直接编辑用户脚本,而不是使用浏览器内的编辑器。

0 投票
2 回答
11304 浏览

jquery - Jquery 与 Tampermonkey

所以我的控制台给了我这个消息 -

在我的用户脚本中,我正在运行一个自动在页面上包含 jquery 的函数,并且似乎 jquery 已加载,因为我可以看到带有 jquery url 作为 src 属性的脚本标记。

作为参考,功能在这里 -

所以,不知道为什么 $ 不会被定义。知道为什么吗?

更新-

使用@require 解决了这个问题。

0 投票
3 回答
7222 浏览

javascript - Greasemonkey 1.0 中的 jQuery 与使用 jQuery 的网站冲突

自从几天前发布了新的 Greasemonkey 1.0 以来,每个具有 jQuery 的站点以及我在 Greasemonkey 脚本中使用 jQuery 的地方都无法正确运行我的脚本。我的 GS 脚本(使用@require元数据)中的 jQuery 与页面的 jQuery 冲突。这是由于新@grant代码。

我已经阅读了文档,但仍然不知道如何在沙箱中再次运行 GS 脚本;唯一的选择似乎是要么授予对 GS API 的访问权限,要么将其授予 none 并在没有任何安全限制的情况下运行脚本,当我设计要运行的数十个 GS 脚本时,这对我来说根本不起作用有安全限制,喜欢这样。

0 投票
2 回答
1671 浏览

jquery - @require-ing jQuery 覆盖页面的 $ 变量

我正在@require为我的 Greasemonkey 脚本使用 jQuery,并在我的脚本文件中使用这一行:

而且效果很好;我可以$('#id')用来访问 DOM。

但是,$“真实”页面的变量被修改($jQuery 1.2.xx 在哪里):我收到一个$.include未定义的错误。

我认为 Greasemonkey 的沙盒模型会防止目标页面的变量被覆盖?

如何确保包含 javascript 库不会影响“真实”网站,而只会影响我的 Greasemonkey 脚本?

0 投票
2 回答
1184 浏览

event-handling - 如何防止用户脚本 [GreaseMonkey/TamperMonkey] 添加的按钮提交表单

首先让我说有问题的代码是 a 的一部分UserScript,因此,正常的 DOM 规则和 Javascript 方法不起作用。

情况如下:

我编写了一个与在线聊天站点交互的用户脚本。我有一些button是在用户脚本中生成的。其中一些按钮位于表单内部,而许多按钮则不在。

通过 GreaseMonkey 添加的元素存在于两个世界中——它们存在于页面 DOM 中,它们存在于稍微提升的 UserScript 世界中,这意味着这些行:

阻止其余UserScript操作运行,但不会阻止按钮导致表单提交。

作为一种解决方法,我正在构建span元素而不是button. 这行得通,但它确实打破了聊天室的视觉布局。

有谁知道防止添加元素UserScripts以防止form提交的方法?如果做不到这一点,我会梦想有人知道如何让自己span看起来像一个本地人button

编辑:我有一个似乎可以工作的解决方案——但我还没有在每个 UserScript 环境下完全测试它:

0 投票
3 回答
1083 浏览

javascript - 使用用户脚本时如何检测鼠标点击?

我尝试为我每天使用的一些网站添加一些功能。我想添加一个功能,当我点击某些链接时会删除一些元素。所以我使用Tampermonkey并尝试测试以下代码:

可悲的是,它不起作用。这就是它所说的:

ReferenceError: $ 未定义

在 removeUsers (eval at (eval at eventHandler (eval at <anonymous> (chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/content.js:56:21))), <anonymous>:65:5)

老实说,我不知道这些是什么意思。