Joh*_*alt 14 javascript debugging firefox greasemonkey
我遇到了这个非常基本的Greasemonkey脚本的问题,很可能是元数据配置.
这是基本文件的完整源代码
// ==UserScript==
// @name Google Hello
// @namespace https://google.com
// @description Basic Google Hello
// @include *
// @version 1
// ==/UserScript==
alert("hi google!");
Run Code Online (Sandbox Code Playgroud)
我应该在访问Google.com时运行此脚本,但警报不会弹出.有什么问题?
我试图用Firefox在Ubuntu上运行这个脚本.
Bro*_*ams 26
如果alerts()没有解雇,你很可能点击了Firefox的Prevent this page from creating additional dialogs选项,或者设置了浏览器首选项(旧版本的Firefox),或者Firefox可能在内存中变得不稳定.
(添加了一步以解决问题alert().)
首先确保脚本甚至针对相关页面触发.
在浏览该页面时,单击Greasemonkey图标旁边的向下三角形(或者,您可以在Firefox菜单上打开工具 - > Greasemonkey.)并验证是否显示了预期的脚本名称并进行了检查.例如:
在Firefox的浏览器控制台上查看是否有任何相关的消息/错误.
按CtrlShiftJ或等效激活控制台.
如果找到,则打开about:config,搜索capability.policy.default.Window.alert并删除或重置该值.
请提供三种版本的版本:(1)操作系统,(2)Firefox,(3)Greasemonkey或Tampermonkey或Scriptish等.
@include *意味着脚本将为每个页面触发! 这几乎总是一种糟糕的做法.(有一些例外,但你的情况不是一个.)
@namespace不控制页面的运行位置. 唯一@namespace允许的是允许多个脚本具有相同的名称(只要它们的@namespaces不同).请参阅该@namespace文档.
避免alert()用于调试.这很烦人,可以掩盖时间问题.
使用console.log(). 您可以在浏览器控制台上查看结果和有用的错误消息(提示,提示).
Google几乎总是使用/重定向到www.google.com(对于英国美国用户).所以,// @include https://google.com几乎永远不会像你想要的那样工作.
建议你使用:
// @match *://www.google.com/*
Run Code Online (Sandbox Code Playgroud)
作为一个起点.
在Firefox Greasemonkey中,您还可以使用魔术.tld来支持Google的大部分国际域名,例如:
// @include http://www.google.tld/*
// @include https://www.google.tld/*
Run Code Online (Sandbox Code Playgroud)
使用两条线.请注意,这不如@match线路那么好.所以,如果您只关心一个国家/地区,请使用@match.
安装此脚本:
// ==UserScript==
// @name Google Hello
// @namespace John Galt
// @description Basic Google Hello
// @match *://www.google.com/*
// @version 1
// @grant none
// ==/UserScript==
console.log ("Hi Google!");
Run Code Online (Sandbox Code Playgroud)访问Google并在Firefox的浏览器控制台上记下结果.
| 归档时间: |
|
| 查看次数: |
8938 次 |
| 最近记录: |