Javascript 我非常简单的Greasemonkey脚本没有运行?

Javascript 我非常简单的Greasemonkey脚本没有运行?,javascript,debugging,firefox,greasemonkey,Javascript,Debugging,Firefox,Greasemonkey,我对这个非常基本的Greasemonkey脚本有问题,很可能是元数据配置 这是基本文件的完整源代码 // ==UserScript== // @name Google Hello // @namespace https://google.com // @description Basic Google Hello // @include * // @version 1 // ==/UserScript== alert("hi google!"); 这个脚本应

我对这个非常基本的Greasemonkey脚本有问题,很可能是元数据配置

这是基本文件的完整源代码

// ==UserScript==
// @name        Google Hello
// @namespace   https://google.com
// @description Basic Google Hello
// @include     *
// @version     1
// ==/UserScript==

alert("hi google!");
这个脚本应该在我访问Google.com时运行,但警报不会弹出。问题是什么

我正在尝试在Ubuntu上使用Firefox运行此脚本。

如果未触发
警报()
可能是您单击了Firefox的
阻止此页面创建其他对话框
选项,或者设置了浏览器首选项(Firefox的旧版本),或者Firefox的内存变得不稳定

通用Greasemonkey调试步骤: (针对
警报()
的问题添加了一个步骤)

  • 首先确保脚本甚至正在为相关页面启动。
    浏览该页面时,单击Greasemonkey图标旁边的向下三角形(或者,您可以在Firefox菜单上打开工具->Greasemonkey),并验证预期的脚本名称是否显示并选中。例如:

  • 查看上是否有任何相关消息/错误
    按下CtrlShiftJ或同等按钮启动控制台

    下面是一个屏幕截图,显示了由网页和Greasemonkey脚本引起的消息和错误在浏览器控制台中的显示方式:

  • 打开
    about:config
    ,搜索
    capability.policy.default.Window.alert
    并删除或重置该值(如果找到)

  • 卸载Greasemonkey脚本。
  • 完全清除浏览器缓存。
  • 完全关闭Firefox。使用任务管理器或等效工具验证内存中没有Firefox线程/任务/进程
  • 重新启动Firefox。
  • 重新安装Greasemonkey脚本。
  • 如果仍然无法使用,请创建一个新的Firefox配置文件,或者尝试一台不同的计算机。

  • 其他问题:
  • 请提供您的三个版本:(1)操作系统,(2)Firefox,(3)Greasemonkey或Tampermonkey或Scriptish,等等

  • @include*
    意味着脚本将针对每个页面启动这几乎总是一个糟糕的做法。(有一些例外,但你的情况并非如此。)

  • @namespace
    不控制页面运行的位置。
    唯一的
    @namespace
    功能是允许多个脚本具有相同的名称(只要它们的
    @namespace
    不同)。看

  • 避免使用
    alert()
    进行调试。这很烦人,可以掩盖时间问题。
    使用
    console.log()
    您可以在浏览器控制台上查看结果和有用的错误消息(提示、提示)。

  • 谷歌几乎总是使用/重定向到
    www.Google.com
    (适用于美国英语用户)。所以,
    /@includehttps://google.com
    几乎永远不会像您希望的那样工作

    建议您使用:

    // @match  *://www.google.com/*
    
    作为一个起点

    在Firefox Greasemonkey中,您还可以使用magic
    .tld
    来支持谷歌的大多数国际域名,如:

    // @include  http://www.google.tld/*
    // @include  https://www.google.tld/*
    
    两行都用。请注意,此操作的执行效果不如
    @match
    行。因此,如果您只关心一个国家/地区,只需使用
    @match


  • 总而言之:
  • 卸载脚本
  • 重新启动Firefox
  • 安装此脚本:

  • 访问Firefox浏览器控制台并记录结果

  • 如果仍然存在问题,请执行上面的所有调试步骤
  • 如果仍然存在问题,请打开新问题并提供以下所有内容:
  • 上面提到的三个版本
  • 浏览器控制台上的相关错误和消息
  • 复制问题所需的确切代码和步骤制作一个
  • 简要总结您试图解决的问题

  • 您的命名空间设置为https,请尝试调整为仅https谢谢您的建议,但这对情况没有影响。奇怪。在Win7上运行良好我应该试试chrome吗?同时检查Greasemonkey的用户疑难解答页面:和脚本作者:徒手脸。。。令人惊叹的
    // ==UserScript==
    // @name        Google Hello
    // @namespace   John Galt
    // @description Basic Google Hello
    // @match       *://www.google.com/*
    // @version     1
    // @grant       none
    // ==/UserScript==
    
    console.log ("Hi Google!");