问题标签 [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.
mouseevent - 如何让greasemonkey在新标签中一一打开大量链接?
有一些链接看起来像上面
我停在第一步。我无法通过脚本触发器打开它们中的每一个。这是我到目前为止的:
但它不起作用,也不知道如何让它们在新标签中一一打开。
javascript - 在同一页面上多次运行 Greasemonkey 脚本?
我对 Greasemonkey、javascript,实际上是所有 UI 的东西都是全新的。
要求:用户脚本在页面加载后由 GS 运行一次。但是,我需要多次运行相同的脚本而不刷新
用例:例如,Amazon.com 搜索使用 Ajax。我需要在搜索结果中嵌入自定义元素。
每次在同一页面中发生搜索时,我都需要将我的内容与结果一起注入到 search-results-div 中(没有页面刷新)
我当前的脚本仅在页面刷新时运行。
我希望上面的解释清楚。请帮忙。
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。
这是相关的片段:
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
返回未定义。
我已经尝试了许多其他我现在不记得的事情,但是我已经用尽了所有的想法,并且觉得我在打字比任何重要的东西都多。
我不知道如何使用unsafeWindow
iFrame。
javascript - Chrome/Tampermonkey 用户脚本存储在文件系统的什么位置?
Chrome/Tampermonkey 用户脚本存储在文件系统的什么位置?
我想直接编辑用户脚本,而不是使用浏览器内的编辑器。
jquery - Jquery 与 Tampermonkey
所以我的控制台给了我这个消息 -
在我的用户脚本中,我正在运行一个自动在页面上包含 jquery 的函数,并且似乎 jquery 已加载,因为我可以看到带有 jquery url 作为 src 属性的脚本标记。
作为参考,功能在这里 -
所以,不知道为什么 $ 不会被定义。知道为什么吗?
更新-
使用@require 解决了这个问题。
javascript - Greasemonkey 1.0 中的 jQuery 与使用 jQuery 的网站冲突
自从几天前发布了新的 Greasemonkey 1.0 以来,每个具有 jQuery 的站点以及我在 Greasemonkey 脚本中使用 jQuery 的地方都无法正确运行我的脚本。我的 GS 脚本(使用@require
元数据)中的 jQuery 与页面的 jQuery 冲突。这是由于新@grant
代码。
我已经阅读了文档,但仍然不知道如何在沙箱中再次运行 GS 脚本;唯一的选择似乎是要么授予对 GS API 的访问权限,要么将其授予 none 并在没有任何安全限制的情况下运行脚本,当我设计要运行的数十个 GS 脚本时,这对我来说根本不起作用有安全限制,喜欢这样。
jquery - @require-ing jQuery 覆盖页面的 $ 变量
我正在@require
为我的 Greasemonkey 脚本使用 jQuery,并在我的脚本文件中使用这一行:
而且效果很好;我可以$('#id')
用来访问 DOM。
但是,$
“真实”页面的变量被修改($
jQuery 1.2.xx 在哪里):我收到一个$.include
未定义的错误。
我认为 Greasemonkey 的沙盒模型会防止目标页面的变量被覆盖?
如何确保包含 javascript 库不会影响“真实”网站,而只会影响我的 Greasemonkey 脚本?
event-handling - 如何防止用户脚本 [GreaseMonkey/TamperMonkey] 添加的按钮提交表单
首先让我说有问题的代码是 a 的一部分UserScript
,因此,正常的 DOM 规则和 Javascript 方法不起作用。
情况如下:
我编写了一个与在线聊天站点交互的用户脚本。我有一些button
是在用户脚本中生成的。其中一些按钮位于表单内部,而许多按钮则不在。
通过 GreaseMonkey 添加的元素存在于两个世界中——它们存在于页面 DOM 中,它们存在于稍微提升的 UserScript 世界中,这意味着这些行:
阻止其余UserScript
操作运行,但不会阻止按钮导致表单提交。
作为一种解决方法,我正在构建span
元素而不是button
. 这行得通,但它确实打破了聊天室的视觉布局。
有谁知道防止添加元素UserScripts
以防止form
提交的方法?如果做不到这一点,我会梦想有人知道如何让自己span
看起来像一个本地人button
。
编辑:我有一个似乎可以工作的解决方案——但我还没有在每个 UserScript 环境下完全测试它:
javascript - 使用用户脚本时如何检测鼠标点击?
我尝试为我每天使用的一些网站添加一些功能。我想添加一个功能,当我点击某些链接时会删除一些元素。所以我使用Tampermonkey并尝试测试以下代码:
可悲的是,它不起作用。这就是它所说的:
ReferenceError: $ 未定义
在 removeUsers (eval at (eval at eventHandler (eval at
<anonymous>
(chrome-extension://dhdgffkkebhmkfjojejmpbldmpobfkfo/content.js:56:21))),<anonymous>
:65:5)
老实说,我不知道这些是什么意思。