在每个页面上执行Greasemonkey脚本,无论页面类型如何(如foo.com/image.jpg)?

时间:2011-07-18 19:14:03

标签: javascript firefox greasemonkey

Chrome工作正常,我的Greasemonkey脚本,如果复制/粘贴到Firefox的Firebug中,在这些页面上工作正常,但我似乎无法自动执行。

下载&安装脚本:http://sente.cc/js/testing_greasemonkey.user.js

然后转到http://imgur.com/gallery/VaA9c(观察简单警报)和http://i.imgur.com/VaA9c.jpg(观察无警报)

脚本:

// ==UserScript==
// @name          Testing Greasemonkey
// @namespace     stuartpowers
// @description   Testing Greasemonkey
// @author        Stuart Powers
// @homepage      http://sente.cc/
// @include       http://i.imgur.com/*
// @include       http://imgur.com/*
// ==/UserScript==


// load http://imgur.com/gallery/VaA9c (works)
// load http://i.imgur.com/VaA9c.jpg (doesn't work)

(function () {
    alert("worked");
})()

1 个答案:

答案 0 :(得分:2)

不,Greasemonkey需要一个明确的DOM来触发并采取行动。它无法在Chrome生成的 1 伪DOM 2 上运行。

如果你想对这些“页面”采取行动,你必须编写一个Firefox扩展(附加组件)。 (请注意,Google-Chrome中的用户脚本会转换为迷你扩展程序。)

以下是一些附加资源,我发现有用:



1 此处,“Chrome”指的是构成Firefox UI的特权DOM。
2 选择例外。