ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-09-15 12:44:21  阅读:260  来源: 互联网

标签:javascript debugging firefox greasemonkey


我遇到了这个非常基本的Greasemonkey脚本的问题,很可能是元数据配置.

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

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

alert("hi google!");

我应该在访问Google.com时运行此脚本,但警报不会弹出.有什么问题?

我试图用Firefox在Ubuntu上运行这个脚本.

解决方法:

如果不触发alert(),则可能您点击了Firefox的“阻止此页面创建其他对话框”选项,或者设置了浏览器首选项(旧版本的Firefox),或者Firefox可能在内存中变得不稳定.

Universal Greasemonkey调试步骤:

(对于alert()问题,添加了一步.)

>首先确保脚本甚至针对相关页面触发.
浏览该页面时,单击Greasemonkey图标旁边的向下三角形(或者,您可以在Firefox菜单上打开工具 – > Greasemonkey.)并验证是否显示了预期的脚本名称并进行了检查.例如:
Greasemonkey states
>查看Firefox’s Browser Console上是否有任何相关的消息/错误.
按CtrlShiftJ或等效项激活控制台.

这是一个屏幕截图,显示了如何在浏览器控制台中显示消息和错误 – 由网页和Greasemonkey脚本引起:
Sample Browser console results
>打开about:config,搜索capability.policy.default.Window.alert并删除或重置该值(如果找到).
>卸载Greasemonkey脚本.
>完全清除浏览器缓存.
>彻底关闭Firefox.使用任务管理器或等效的方法来验证内存中是否没有Firefox线程/任务/进程.
>重启Firefox.
>重新安装Greasemonkey脚本.
>如果仍然无效,请创建一个新的Firefox配置文件或尝试另一台计算机.

其他问题:

>请提供以下三种版本的版本:(1)操作系统,(2)Firefox,(3)Greasemonkey或Tampermonkey或Scriptish等.
> @include *表示该脚本将针对每个页面触发!这几乎总是一种糟糕的做法. (有一些例外,但你的情况不是一个.)
> @namespace不控制页面的运行位置. @namespace唯一允许的是允许多个脚本具有相同的名称(只要它们的@namespaces不同).见the @namespace documentation.
>避免使用alert()进行调试.这很烦人,可以掩盖时间问题.
使用console.log().您可以在浏览器控制台上查看结果和有用的错误消息(提示,提示).
> Google几乎总是使用/重定向到www.google.com(适用于英国美国用户).所以,// @include https://google.com几乎永远不会像你想的那样工作.

建议你使用:

// @match  *://www.google.com/*

作为一个起点.

在Firefox Greasemonkey中,您还可以使用magic .tld来支持Google的大部分国际域名,例如:

// @include  http://www.google.tld/*
// @include  https://www.google.tld/*

使用两条线.请注意,这不像@match行那样好.所以,如果你只关心一个国家/地区,只需使用@match.

把它们放在一起:

>卸载脚本.
>重启Firefox.
>安装此脚本:

// ==UserScript==
// @name        Google Hello
// @namespace   John Galt
// @description Basic Google Hello
// @match       *://www.google.com/*
// @version     1
// @grant       none
// ==/UserScript==

console.log ("Hi Google!");

>访问Google并在Firefox的浏览器控制台上记下结果.
>如果仍有问题,请按照上面的所有调试步骤进行操作.
>如果仍有问题,请打开一个新问题并提供以下所有内容:

>上面提到的三个版本.
>您在浏览器控制台上获得的相关错误和消息.
>复制问题所需的确切代码和步骤.制作一个MCVE for this!
>您尝试解决问题的简短摘要.

标签:javascript,debugging,firefox,greasemonkey
来源: https://codeday.me/bug/20190915/1804800.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有