问题标签 [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 回答
5343 浏览

javascript - 如何在 Greasemonkey 或 Tampermonkey 中排除 iframe?

我为网站创建了一个 Greasemonkey 脚本。该脚本的作用是在页面末尾添加一个 div。

但是现在该网站为 google-ads 添加了一个 iframe,因此我的 div 也出现在 iframe 中,这不是我想要的。

如何停止影响 iframe 的脚本?

0 投票
2 回答
12762 浏览

javascript - 每个页面加载只运行一次 Greasemonkey 脚本?

如果您使用创建 Greasemonkey 脚本@include *并访问 youtube 等网站,则每次刷新时它都会运行该脚本 20 次以上。这是在 Firefox 上,不确定 Chrome。
有没有办法防止这种情况?

0 投票
3 回答
5807 浏览

javascript - 使用 Greasemonkey(或类似的用户脚本引擎)更快地重定向?

我正在使用 Greasemonkey 将某些 URL 重定向到另一个 URL,但我想在要重定向的 URL 加载之前进行重定向。

目前我正在使用这个简单的脚本:

在上面,谷歌出现了一秒钟,然后被重定向到谷歌。我想马上去雅虎。有可能吗,怎么做?

0 投票
2 回答
6742 浏览

javascript - How to override the alert function with a userscript?

On site there is code like that (its site on LAN)

I try to disable that alert using GM. I was trying to do this

but I see the alert and get this error

How to disable that alert?

P.S. this is NOT a javascript question, but a Greasemonkey question.

EDIT:

Its company's website, so I can't paste the real code

There are also some scripts and CSS declarations in header.

0 投票
2 回答
806 浏览

javascript - 如何在用户脚本中处理多个 AJAX 结果?

我目前正在<textarea>使用 Google Translation API 开发一个 Greasemonkey 脚本来翻译 Intranet 应用程序中的字段。

但是有些文本太大了,只需要一个请求就无法翻译。尝试时出现此错误:

请求的实体太大

无论如何,我找到了一种将文本分割成片段的方法,并在单独的请求中发送它们。棘手的地方是我应该如何在原始文本区域中替换这些片段,尤其是在正确的位置。

在尝试了几种方法都没有成功后,我在文本区域中插入了占位符,对应于必须翻译的文本片段:

但是现在在我的 XHR 的成功回调中,我必须用翻译的文本替换占位符。问题是,我的 XHR 在一个for循环中,遍历包含原始文本片段的表,当请求完成时,循环很长,我不知道如何将翻译放在哪里。

这是代码:

PS:我不能使用 jQuery 的 AJAX 方法,因为这是一个跨域请求,所以$.when这里不能使用新功能(遗憾)

0 投票
1 回答
1175 浏览

javascript - 用户在 Tampermonkey 中输入后消失的菜单命令

Tampermonkey 是 Google Chrome 的一个扩展,它试图模拟 Greasemonkey 的功能。需要明确的是,我让我的脚本在 Chrome 中运行,并且显示了默认的 JavaScript 更改。然而,我想测试菜单命令,并在点击 Tampermonkey 菜单中的命令后输入了一个 6 位十六进制颜色代码。我重新加载了页面,命令从菜单中消失了!我的脚本仍然存在(并且勾选了复选框)。

无论我做了什么或更改了什么代码,在设置了用户定义的输入之后,我永远无法模拟这个初始功能。这使我相信有一些我无法删除的持久性数据导致我的脚本过早地失败。注意:这个确切的脚本在 Firefox 中完美运行并且没有错误。

这显然不是 Tampermonkey 论坛,但这里的人们似乎对跨平台兼容性非常了解。在进行了以下所有更改之后,我没有听到来自 Chrome 控制台的任何声音,而且我现在真的只是没有想法。这是我尝试过的一些事情(没有成功)。列出任何控制台错误:

  1. 将 jQuery 版本从 1.5.1 更改为 1.3.2
  2. 页面加载后从控制台调用 localStorage.getItem('prevoColor') (两个值都为空)
  3. 将客户端存储从 localStorage 更改为 get/setValue
  4. 从控制台调用 GM_getValue = ReferenceError: GM_getValue is not defined
  5. 在 Chrome 选项中删除 veekun.com 的 localStorage 条目
  6. 刷新、重新安装脚本和重新启动浏览器的次数超过我数不清
  7. 使用 Firebug Lite(书签)重复上述所有命令

这是我使用的代码:

关于为什么会发生这种情况的任何想法?

编辑:我向 sizzlemctwizzle 发送了关于这个问题的消息,这是他的回复:“Tampermonkey 的 @require 实现不正确。它下载我的更新程序太频繁了,所以我禁止它通过浏览器嗅探使用我的更新程序。我的服务器无法处理它带来的流量。它从我的服务器下载的脚本中不应该有任何实际代码。由于它在您的脚本中导致错误,我猜 Tampermonkey 在执行这些请求时没有传递用户代理标头。我从来没有在 Chrome 中测试过我的更新程序,所以我不知道它为什么会中断。也许你可以尝试安装 NinjaKit。”

0 投票
2 回答
8172 浏览

javascript - Chrome 无法读取 style.display 值

我有一个奇怪的问题。我尝试编写一个在 Firefox 和 Google Chrome 中运行的 GreaseMonkey 脚本。使用 Chrome,我尝试了 2 个扩展:“TamperMonkey”和“Blank Canvas Script Handler”,主要是因为我的脚本会定期检查外部站点上的新版本,这被认为是跨站点脚本,在 Chrome 中没有授权。

为了向您展示我的问题,我编写了一个简单的测试用例:

div 元素“额外”由页面修改。问题是 Chrome 无法读取 el.style.display 的值,因此 extraFlag 永远不会再次变为“假”。我使用这个标志来避免多次运行代码,该网站大量使用 JavaScript 驱动此代码在 Firefox 中运行良好!

我试图用谷歌搜索,但找不到正确的答案。更改显示值似乎很容易,但似乎只有我一个尝试阅读它!

我编写此代码是因为 Chrome 不支持“DOMAttrModified”:-(

在此先感谢您的帮助

埃里克

0 投票
2 回答
41926 浏览

javascript - 使用 Greasemonkey 或 Tampermonkey 添加 JavaScript 按钮?

我对 Greasemonkey 的世界还很陌生,我想知道如何在 JavaScript 中制作一个按钮。

比如说我想在 YouTube 或 Google 上放一个按钮?我将如何调用它或制作它?

我很困惑,找不到任何东西。除非有办法与这些网站的 HTML 交互并将它们添加到 Greasemonkey 脚本?

0 投票
1 回答
2576 浏览

javascript - Greasemonkey to change value of Radio buttons in a form?

I am writing a Greasemonkey/Tampermonkey script and I need to turn on radio buttons depending on the name and value of the radio control.

This is how it looks:

So I want to set those buttons that have name of 11 and a value of zzzz to be checked.

0 投票
3 回答
936 浏览

firefox - 用户脚本 chrome 与 Firefox

我为greasemonkey写了一个很大的用户脚本,它在firefox中工作得很好,但在chrome中没有任何反应:(

我可以使用哪些功能,哪些不能?例如 GM_setvalue... 有相同的功能吗?