问题标签 [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 投票
1 回答
1696 浏览

javascript - 从 Tampermonkey 按钮运行功能

为了更好地使用 Javascript,我正在为 Javascript/jQuery 游戏编写 Tampermonkey 脚本。我在页面上创建了一个按钮,但我无法从中运行任何功能。

我的问题是,如何从添加到页面的按钮运行功能?

这是我到目前为止所拥有的:

此外,我需要一种方法来grind()无休止地运行该功能。我不确定是否setInterval()完全符合我的预期。

0 投票
1 回答
609 浏览

javascript - 使用 Tampermonkey 在 Chrome 设置中隐藏内容

我试图隐藏 Chrome 管理密码页面中的“显示”按钮,该页面以纯文本形式显示密码。我不希望这变成任何形式的安全讨论 - 我只是没有用 Chrome 显示我的密码。

由于它似乎只是 Chrome ( chrome://settings/passwords) 的另一个页面,我决定尝试使用 Tampermonkey 来弄乱设置页面。我根本没有用那个密码字段,所以我试图用“密码”类隐藏任何东西:

但是,这不起作用。我尝试使用控制台弄乱页面,但我认为设置页面具有某种安全性,使我什至无法选择相关的页面元素。

有任何想法吗?

0 投票
1 回答
1209 浏览

debugging - Get the line-number that throws the error in Tampermonkey?

When developing a script for Tampermonkey, I don't get the line-number that has errors, just what error it is. Is it possible to get the number somehow?

0 投票
3 回答
185 浏览

javascript - 在文档加载到 JS 之前调用函数

我的朋友要求我这样做。

他需要阻止他的孩子访问某些网站。

他安装了 chrome 的篡改猴子。我必须在 tamper-monkey 中制作一个脚本,这样当它到达网站时,它会改变网页内容。

源代码是:

此脚本仅在网站加载完毕后才有效。但是他的孩子在中间停止了网站的加载,他们可以查看其中的一部分。

甚至document.onload=function(){document.write("...");}在加载后工作。有没有办法让脚本在加载文档之前运行,即在地址栏上键入网址或单击超链接之后立即运行。

0 投票
2 回答
265 浏览

javascript - 简单的 setTimeout 不起作用?

我正在尝试在 Tampermonkey 中创建一个基本脚本。我想访问一个 URL,等待 1 秒,然后访问另一个:

该函数doStuff似乎从未被调用过。每当我运行脚本时,我都会被重定向到 google.com,但不会重定向到 stackoverflow.com。

0 投票
1 回答
3122 浏览

javascript - GreaseMonkey @include for about:newtab

我有一个要在每个页面上运行的脚本。要做到这一点很容易,我只需设置@include *并完成。它显示在每个页面上,由我在代码中分配给它的热键组合激活。它按预期工作并且没有问题。

但是,我希望它也可以在空白选项卡上使用。如果您有一个包含实际内容的页面(如果您愿意,可以进行文档分配)它可以正常工作,我想它可以将脚本注入并运行,我明白了。我想知道并希望是否有办法让脚本也钩住空白标签页。

我对此进行了大量研究,但无济于事,我希望我这里的一些对 JS 有更广泛接触的朋友,也许在这方面获得的经验可以提供解决方案。我将不胜感激。

0 投票
1 回答
4224 浏览

javascript - Tampermonkey 的 GM_xmlhttpRequest 没有实现“上下文”属性?

我为 Greasemonkey (Firefox) 编写了一个用户脚本,并正在测试它与 Chrome 的 Tampermonkey 的兼容性,并在开发者控制台中出现错误:

错误似乎引用了这样的onreadystatechanged回调GM_xmlhttpRequest

函数本身调用正常,回调被调用,但是一旦我尝试访问其中的contextvar,它是未定义的。

这一切都在 Firefox 中按预期工作。它的作用是遍历span具有“flair”类的元素,并使用正则表达式检查它们是否包含 Steam 用户名,如果是,则使其成为其 SteamCommunity 页面的链接。( github上的完整源代码)。该脚本在/r/PaydayTheHeistOnline上运行。

我已经测试了使用函数外部定义的数组来存储数据,而不是使用传递给 xmlhttpRequest 的上下文属性,但我得到了完全相同的错误。

0 投票
1 回答
10548 浏览

jquery - 最新的 Tampermonkey / Greasemonkey 还不能使用 jQuery AJAX 吗?

我想在我的 Tampermonkey 脚本中做一些 AJAX 操作,我发现 jQuery 相当方便。目前仍然没有办法让 jQuery AJAX 与 Tampermonkey 一起工作吗?

请注意,这些操作不会来自同一个来源,这就是使用 Tampermonkey 的全部原因。Greasemonkey 也可以。

0 投票
0 回答
394 浏览

css - 在用户脚本中加入 Markdown 编辑器

我正在尝试将markdowndeep添加为我正在设计的用户脚本的一部分。不幸的是,Tampermonkey 使用旧的处理@Resources 的方式,并在GM_getResourceURL被调用时返回一个base64 编码的数据URI。

但是尝试使用这个(不幸的是,这是一个需要登录的站点)。

我将如何在html文件中使用它,例如mdd_help.htm

但更重要的是,我什至完全无法让图像正常工作。Chrome"Invalid property value."在那个“检查元素> CSS 窗口”中给了我一个,用于(除其他外): url(data:image/png;base64,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) width:20px

0 投票
1 回答
170 浏览

javascript - 可以改进此代码以避免内存泄漏或更稳定吗?

我已经编译了代码(发布在下面):

  • 允许创建热键(在我的情况下为Ctrl+ Shift+ S
  • 旨在调出输入框(又名prompt
  • 并接受一个命令(一些预定义的switch或选项)
  • 节中定义addGlobalHotkey(function(){/PLAY HERE/},[key1,key2,key3]);

所以现在你有了整个背景。它在使用 GreaseMonkey 和 TamperMonkey 的 Firefox、Chrome 中运行良好,并且完全符合我的需要。

但是,我注意到在任何给定选项卡上执行它后,该特定选项卡开始逐渐变慢,挂起,延迟绘制,唯一的解决方案是关闭它。其他选项卡不受影响,仅影响您在执行时所在的选项卡。所以我担心可能存在内存泄漏,这是我缺少的代码中的东西吗?可以以某种方式改进以确保不是这种情况吗?

另外,我注意到虽然 99+% 的时间,它释放键就好了,有时当你按下键盘上的 ANY 键并执行命令时,这表明钩子在之后没有正确清理本身,导致任何键被困并处理触发器,即使不是指定的键,我错过了什么?稳定性能提高吗?