3

我正在使用Firefox 2.0.0.11Greasemonkey 0.8.x以及适用于 Greasemonkey 0.8 的最新jQuery 版本 (1.3.2)
我尝试加载这个用户脚本:

// ==UserScript==
// @name        TEST
// @include     *
// @require     jquery.min.js
// @grant       GM_getValue
// ==/UserScript==

$(document).ready(function(){
    alert('jQuery!');
});     

但我收到错误:

Error: $ is not defined
Source File: file:///G:/Firefox/Data/profile/gm_scripts/huhu/huhu.user.js
Line: 8

我知道我必须更新这个旧浏览器。但这是不可能的。我必须解决这个问题!

我想在没有互联网连接的本地 PC 上加载 jQuery 代码。我已将 jquery.min.js 复制到用户脚本所在的同一文件夹中。

G:/Firefox/Data/profile/gm_scripts/huhu/jquery.min.js

任何想法问题出在哪里?

问候, 伯恩特

4

1 回答 1

3

有两种方法可以从本地驱动器安装 Greasemonkey 脚本,这样 jQuery 就可以工作。
但是,首先,这里是...

两种方法共有的先决条件:

  1. 旧版本的 Greasemonkey(和 Firefox)很容易混淆。因此,请使用 Greasemonkey 的脚本管理器卸载任何旧版本的脚本。

  2. 转到gm_scripts您的Profile Folder中的文件夹,并实际删除脚本的文件夹(如果存在)。

  3. 确保您的脚本源代码位于带有user.js扩展名的文件中。例如:Hello World.user.js

  4. 确保您的脚本源代码位于不在系统TMP或文件夹中的temp文件夹中。例如,将源文件放在C:\My GM scripts\.

  5. 同样,这不是也不要使用Firefox 配置文件文件夹树中的任何文件夹。

  6. 如果有疑问,或者如果事情看起来“不稳定”,请重新启动 Firefox。


方法一、电脑可以上网:

  1. 只需指向@requireGoogle 的正确 jQuery 版本的副本。对于 GM 0.8,它应该不迟于 jQuery 1.3.2。

    // ==UserScript==
    // @name     Hiya Ma
    // @include  http://stackoverflow.com/*
    // @require  http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js
    // ==/UserScript==
    
    $("body").prepend ('<div>Hello world!</div>');
    


  2. 使用 Firefox,打开文件菜单 ( CtrlO) 打开源文件。C:\My GM scripts\Hello World.user.js(例如:)

    或者:
    将源文件拖放到任何打开的 Firefox 选项卡中。

  3. Greasemonkey 将提示安装脚本。按照提示进行操作。


方法二、电脑无法上网:

  1. 下载适当的 jQuery 版本(在本例中为 1.3.2),并将其另存为jquery.min.js,与脚本源(在本例中为 ,)在同一文件夹C:\My GM scripts\中。

  2. 不要在@require指令中使用任何路径:

    // ==UserScript==
    // @name     Hiya Ma
    // @include  http://stackoverflow.com/*
    // @require  jquery.min.js
    // ==/UserScript==
    
    $("body").prepend ('<div>Hello world!</div>');
    


  3. 按照方法 1的步骤 2 和 3 安装脚本。您不需要打开或拖动 jQuery 文件。


另请注意:

  1. G:/Firefox/Data/profile/gm_scripts/huhu/jquery.min.js看起来像一个 Firefox 配置文件目录。您在这里没有放置任何文件。Greasemonkey 将根据需要复制和重命名文件。

  2. @grant在 Greasemonkey 版本 1.0 之前不支持。不要在这里使用它。

  3. $(document).ready()这里不需要,大多数 GM 脚本中也不需要。Greasemonkey 默认在正确的时间触发。

  4. 这些方法针对 Firefox 2.0.0.20 和 Greasemonkey 0.8.20100408.6 进行了验证,但它们几乎适用于 GM 1.0 之前的所有 FF+GM 版本。


如果收到 `NS_ERROR_FILE_ACCESS_DENIED` 错误怎么办:

此错误在旧版本的 Greasemonkey 中并不少见。两个最常见的原因是文件管理不善temp(FF/GM)和 Firefox 配置文件损坏。

在大多数情况下,请执行以下操作来解决此问题:

  1. 重复上面列出的先决条件。

  2. 清除系统临时文件夹中任何类似于脚本源文件、任何@required 文件或任何@resourced 文件的内容。

    在这个例子中,特别是寻找hiya_ma.user.jsand jquerymin.js

    在 Windows 中,临时文件夹具有地址:%TMP%%TEMP%.

  3. gm_scripts文件夹中,确保config.xml没有对已删除或丢失的脚本的引用。如果没有(其他)脚本,请删除config.xml.

  4. 如果一切都失败了,请使用 Firefox 的配置文件管理器创建一个新配置文件并在那里重新安装您的脚本。

于 2012-09-09T09:40:07.947 回答