我正在为自己写一个用户脚本,我有一个永久链接列表,我想隐藏我已经访问过的那些。我在想我可以使用 jquery 并检查链接是否已被访问(默认颜色=紫色),如果是,则隐藏元素。
但是......我无法弄清楚如何实际检查这个。.attr('style');只有border: none在 .css() 无效时才能得到我。
我如何检查链接是否已被点击?我正在使用greasemonkey 在firefox 4.0.1 上进行测试,但我将在chrome 上使用它。
我正在尝试使用Greasemonkey的@require/ @include方法添加jQuery ,但它不起作用.出现以下错误:
Uncaught ReferenceError: $ is not defined (repeated 10 times)
Run Code Online (Sandbox Code Playgroud)
这是我的示例代码:
// ==UserScript==
// @description Bored, really bored.
// @name MatteoSample
// @namespace MatteoSampleNamespace
// @include *
// @include http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
// ==/UserScript==
$(document).slideUp();
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
请参考具有相同的JavaScript以便在网页和iframe中运行的技术,如此答案所述:
例如,假设您在domain_A.com上具有此页面:
<html>
<body>
<iframe src="http://domain_B.com/SomePage.htm"></iframe>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如果您像这样设置@match指令:
// @match http://domain_A.com/*
// @match http://domain_B.com/*
Run Code Online (Sandbox Code Playgroud)
然后您的脚本将运行两次-一次在主页上,一次在iframe上,就好像它是一个独立页面一样。
使脚本的两个实例相互通信的选项有哪些?
这将是同步实例所必需的。例如,只有在网页脚本实例完成后才让iframe脚本实例执行其任务,反之亦然。
如何使用Tampermonkey上的用户脚本自动提交页面上的第一个表单?
例如,页面上有三个表单/提交按钮.加载用户脚本后,它会自动提交页面上找到的第一个表单,就像按下提交按钮一样.
我只是想为 Angular 对象创建一些扩展,以使 AngularJS 调试更加方便。
但是当我运行 add userscript 时,它找不到角度对象。AngularJS 库加载在标签底部。
UPD:@estus 提供了正确的答案,但如果你想使用 chrome,你需要通过Tampermonkey扩展安装它。
您可以在此处找到最终的代码片段。
我正在创建一个Tampermonkey用户脚本,它会自动点击谷歌翻译网站上的"星标"按钮并保存我的搜索,以便我以后可以查看它们并进行排练.
这是我到目前为止所得到的:
// @match https://translate.google.com/#en/de/appetit/
var el = document.getElementById("gt-pb-star");
setTimeout(function(){
el.click();
},4000);
Run Code Online (Sandbox Code Playgroud)
我遇到了2个问题.
@match应该是每个translate.google.com搜索,而不仅仅是胃口.如何指定整个域?你能帮我完成这个用户吗?
编辑:看来,设置match到https://translate.google.com/处理的第一个问题.仍然不知道为什么click()不起作用.
简而言之,我不想将警报 URL 和响应正文发送到我的应用程序。此代码有效,但除非我授予它,否则我无法使用 GM_xmlhttpRequest。
不做任何改变,代码就会神奇地崩溃。我不确定发生了什么变化以及如何修复它。我以为我可以使用console.log数据并将其复制/粘贴到我的应用程序中,但 Facebook 禁用了 console.log。
我想过做 xmlhttpRequest 但这也被某种方式阻止了。我通过在控制台中执行代码进行测试。这 3 行似乎在除了 Facebook 域之外的任何地方都有效。我认为这与CORS有关。
// ==UserScript==
// @name FBTest
// @namespace test
// @include https://*.facebook.com/*
// @version 1
// @grant none
// ==/UserScript==
//change none to GM_xmlhttpRequest
(function() {
var proxied = window.XMLHttpRequest.prototype.open;
window.XMLHttpRequest.prototype.open = function(method, url) {
alert(url);
return proxied.apply(this, [].slice.call(arguments));
};
})();
Run Code Online (Sandbox Code Playgroud) 我正在写一个Tampermonkey代码,例如网页ConverTo:
它应该自动选择下拉第二个选项:
<select class="format-select">
<option value="mp3">MP3</option>
<option value="mp4">MP4 (video)</option>
</select>
Run Code Online (Sandbox Code Playgroud)
, 页面完全加载后几秒钟。
但什么也没有发生。
我的代码:
......
// @match https://www.converto.io/*
// @require http://code.jquery.com/jquery-1.11.0.min.js
// ==/UserScript==
$(document).ready(function(){
setTimout(test(),10000);
function test()
{
$(".format-select").val('mp4');
}
})();
Run Code Online (Sandbox Code Playgroud)
请帮忙!
一个网页正在将一个内置的 javascript 方法设置为null,我正在尝试找到一种方法来调用用户脚本中的重写方法。
考虑以下代码:
// Overriding the native method to something else
document.querySelectorAll = null;
Run Code Online (Sandbox Code Playgroud)
现在,如果我尝试执行document.querySelectorAll('#an-example'),我会得到异常Uncaught TypeError: null is not a function。原因是该方法已更改为null并且不再可访问。
我正在寻找一种方法来以某种方式恢复对用户脚本中方法的引用。问题是网站可以覆盖对任何东西的引用(甚至包括Document,Element和Object构造函数)。
由于该网站还可以方便地设置参考null,我需要一种方法来找到一种方法来访问querySelectorAll方法的网站将无法覆盖。
挑战在于,在我的用户脚本在页面上执行时,任何方法(例如createElement和getElementsByTagName(除了它们的prototypes))都可以被覆盖null。
我的问题是,如果它们也被覆盖,我该如何访问Document或HTMLDocument构造函数方法?
由于浏览器限制, Tampermonkey无法在文档的开头运行我的脚本,因此我无法保存对我想要使用的方法的引用,如下所示:
// the following code cannot be run at the beginning of the …Run Code Online (Sandbox Code Playgroud) 我正在查看Tampermonkey中的GM_registerMenuCommand函数,我注意到调用了第三个参数,accessKey并认为它是传递一个热键来触发此命令。
传递的参数的格式是什么,我是否错误地假设这是它的作用?
我在任何地方都找不到有关该参数的文档。这里有人以前用过吗?
userscripts ×10
javascript ×6
tampermonkey ×6
greasemonkey ×5
angularjs ×1
cross-domain ×1
css ×1
facebook ×1
firefox ×1
form-submit ×1
forms ×1
hyperlink ×1
iframe ×1
jquery ×1
object ×1
overriding ×1
select ×1