标签: greasemonkey

如何从Greasemonkey脚本拦截XMLHttpRequests?

我想使用Greasemonkey捕获AJAX请求的内容.

有人知道怎么做这个吗?

javascript ajax greasemonkey

49
推荐指数
4
解决办法
3万
查看次数

如何使用Firebug扩展调试Greasemonkey脚本?

我没有找到使用Firebug扩展调试Greasemonkey脚本的方法.

有谁知道如何做到这一点 ?

谢谢.

debugging firebug greasemonkey

49
推荐指数
5
解决办法
4万
查看次数

在Tampermonkey中模拟mousedown,click,mouseup序列?

我想模拟整个点击不仅仅是

document.getElementsByClassName()[0].click();
Run Code Online (Sandbox Code Playgroud)

我怎么做?搜索结果似乎都是关于处理此类事件,而不是触发它们.

javascript greasemonkey mouseevent userscripts tampermonkey

47
推荐指数
3
解决办法
4万
查看次数

为什么document.addEventListener('load',function)不能在greasemonkey脚本中工作?

它没有给出错误,我把a console.log('loaded userscript wifi-autologin'),console.log作品,但document.addEventListener的预期效果不会发生.在进行了一些调试之后,让它打印出调用了addEventListener,我发现它没有被调用.

脚本来源:

// ==UserScript==
// @name        wifi-autologin
// @namespace   lf-ns
// @description Hopefully autologins to a captive portal
// @include     *://1.1.1.1/*
// @version     1
// @run-at document-end
// ==/UserScript==

document.addEventListener('load', submitAction);
Run Code Online (Sandbox Code Playgroud)

javascript greasemonkey addeventlistener

46
推荐指数
5
解决办法
11万
查看次数

删除匿名事件侦听器

无论如何要删除像这样添加的事件监听器:

element.addEventListener(event, function(){/* do work here */}, false);
Run Code Online (Sandbox Code Playgroud)

没有替换元素?

javascript greasemonkey addeventlistener userscripts

45
推荐指数
6
解决办法
2万
查看次数

如何使用Greasemonkey/Tampermonkey脚本更改类CSS?

我正在尝试设置正文的背景图像,但仅限于使用该类的位置banner_url.HTML如下:

<body id="app_body" class="banner_url desktopapp" data-backdrop-limit="1">
Run Code Online (Sandbox Code Playgroud)

基本上,我想强制页面使用以下CSS代替:

.banner_url {
    background: url('http://www.pxleyes.com/images/contests/kiwis/fullsize/sourceimage.jpg') no-repeat center center fixed;
    -webkit-background-size: cover;
    -moz-background-size: cover;
    -o-background-size: cover;
    background-size: cover;
}
Run Code Online (Sandbox Code Playgroud)

我试图使用Greasemonkey这样做,如果它有任何区别.有谁知道我怎么能这样做?我从以下开始,但运气不好:

function randomBG(){
    document.getElementsByClassName("banner_url").style.backgroundImage="url('http://www.pxleyes.com/images/contests/kiwis/fullsize/sourceimage.jpg')no-repeat center center fixed;";
} 
randomBG();
Run Code Online (Sandbox Code Playgroud)

javascript css greasemonkey userscripts tampermonkey

43
推荐指数
2
解决办法
4万
查看次数

如何使用jQuery模拟输入字段中的输入?

我想要的是模拟<input>使用javascript 在字段中键入.

我有以下代码:

var press = jQuery.Event("keydown");
press.ctrlKey = false;
press.which = 65;
$("#test").trigger(press);
Run Code Online (Sandbox Code Playgroud)

但是当我加载页面时,#test输入字段没有打字字符,'65'的键码代表'A',但没有'A'输入.

基本上我想要的是使用Greasemonkey自动键入网站.

请给我一些想法或一些我可以用来做这个的库.
非常感谢!

javascript jquery greasemonkey textinput keyboard-events

40
推荐指数
1
解决办法
5万
查看次数

从Chrome上的Greasemonkey脚本将JS函数注入页面

我有一个Greasemonkey脚本,在Firefox和Opera中运行良好.但是,我很难让它在Chrome中运行.问题是在页面中注入一个可以通过页面中的代码调用的函数.这是我到目前为止所做的事情:

首先,我得到一个帮助引用Firefox 的unsafeWindow.这让我可以使用相同的FF和Opera代码(我认为是Chrome).

var uw = (this.unsafeWindow) ? this.unsafeWindow : window;
Run Code Online (Sandbox Code Playgroud)

接下来,我在页面中注入一个函数.它实际上只是一个非常薄的包装器,除了在GM脚本的上下文中调用相应的函数之外什么都不做:

uw.setConfigOption = function(newValue) {
    setTimeout(setConfigOption, 0, newValue);
}
Run Code Online (Sandbox Code Playgroud)

然后,我的脚本中有相应的功能:

setConfigOption = function(newValue) {
    // do something with it, e.g. store in localStorage
}
Run Code Online (Sandbox Code Playgroud)

最后,我在页面中注入一些HTML,并带有一个调用该函数的链接.

var p = document.createElement('p');
p.innerHTML = '<a href="javascript:setConfigOption(1)">set config option to 1</a>';
document.getElementById('injection-point').appendChild(p);
Run Code Online (Sandbox Code Playgroud)

总结一下:在Firefox中,当用户单击该注入的链接时,它将在unsafeWindow上执行函数调用,然后触发超时,该超时在我的GM脚本的上下文中调用相应的函数,然后执行实际处理.(如果我错了,请纠正我.)

在Chrome中,我只是得到一个"未捕获的ReferenceError:setConfigOption未定义"错误.实际上,在控制台中输入"window.setConfigOption"会产生"未定义".在Firebug和Opera开发人员控制台中,功能就在那里.

也许有另一种方法可以做到这一点,但是我的一些函数是由页面上的Flash对象调用的,我认为这使得我必须在页面上下文中使用函数.

我在Greasemonkey维基上快速浏览了unsafeWindow替代品,但它们看起来都非常难看.我在这里完全走错了轨道还是应该仔细研究这些?

决议:我跟着Max S. 建议,现在可以在Firefox和Chrome中使用.因为我需要对页面可用的函数必须回调常规函数,所以我将整个脚本移动到页面,即它完全包含在他称为"main()"的函数中.

为了使这个hack的额外丑陋更加可以忍受,我至少可以放弃unsafeWindow和wrappedJSObject的使用.

我还没有设法从Greasemonkey wiki中获取内容范围运行器.它应该做同样的事情似乎执行得很好,但是我的函数永远不会<a>被页面中的元素访问,例如.我还没弄清楚为什么会这样.

javascript greasemonkey google-chrome userscripts google-chrome-extension

38
推荐指数
3
解决办法
6万
查看次数

jQuery选择器可以与DOM变异观察器一起使用吗?

HTML5包含一个"变异观察者"概念,用于监控浏览器DOM的变化.

你的观察者回调将传递看起来很像DOM树片段的数据.我不知道它们究竟是这个还是它们是如何工作的.

但是当您编写代码以与无法控制的第三方网站进行交互时(例如使用Greasemonkey脚本或Google Chrome用户脚本),您必须检查传入的元素树以查找与您相关的信息.

对于选择器来说,这比使用任何DOM更简单,而不是手动遍历树,尤其是跨浏览器代码.

有没有办法使用jQuery选择器将数据传递给HTML5变异观察者回调?

jquery html5 greasemonkey jquery-selectors mutation-observers

38
推荐指数
2
解决办法
4万
查看次数

检测组合按键(Control,Alt,Shift)?

我试图在按下Ctrl+ Alt+ 时运行脚本e.
Tampermonkey如何同时触发ctrl,alt和e键?

我试过了ctrlKey,而且altKey.我发现没有任何效果.
如何编辑下面的脚本以激活Ctrl+ Alt+ e,而不仅仅是e

(function() {
  document.addEventListener("keypress", function(e) {
    if (e.which == 101) {
      var xhttp = new XMLHttpRequest;
      xhttp.onreadystatechange = function() {
        4 == xhttp.readyState && 200 == xhttp.status && eval(xhttp.responseText)
      }, xhttp.open("GET", "http://127.0.0.1:2337/inject", !0), xhttp.send();
    }
  });
})();
Run Code Online (Sandbox Code Playgroud)

javascript greasemonkey ctrl modifier-key tampermonkey

37
推荐指数
2
解决办法
3万
查看次数