Tampermonkey 未显示 Chrome 通知

use*_*648 6 javascript google-chrome tampermonkey

我正在尝试让我的 Tampermonkey 脚本显示 Chrome 通知,但没有显示通知。我已允许在网站上发送通知。

这是我的代码:

// ==UserScript==
// @name         New Userscript
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        somewebsite.com/*
// @grant        GM_notification
// @require      http://code.jquery.com/jquery-1.12.4.min.js
// ==/UserScript==

(function ($, undefined) {
    $(function () {
        GM_notification({title: 'foo', image: 'bar', text: '42', onclick: console.log});
    });
})(window.jQuery.noConflict(true));
Run Code Online (Sandbox Code Playgroud)

我需要改变什么?

Bro*_*ams 5

GM_notification文档,GM_notification的image参数需要的图像。
'bar'不是图像,因此 GM_notification 调用失败(静默)。

当然,如果有错误消息会很好,但目前 Tampermonkey 不提供。(随意提交错误报告。)

还:

  • 那些(function包装是完全没有必要的,只是杂乱/复杂。
  • 同上的window.jQuery.noConflict-当@grant none不生效。
  • 没有参数传递给onclick回调,所以给它console.log不起作用。


这是纠正了上述错误的完整工作脚本

// ==UserScript==
// @name        _Notification test
// @match       *://YOUR_SERVER.COM/YOUR_PATH/*
// @match       /sf/ask/3623844101/*
// @grant       GM_notification
// @require     http://code.jquery.com/jquery-1.12.4.min.js
// ==/UserScript==

GM_notification ( {title: 'foo', text: '42'} );
Run Code Online (Sandbox Code Playgroud)


使用有效图像:

GM_notification ( {
    title: 'foo', text: '42', image: 'https://i.stack.imgur.com/geLPT.png'
} );
Run Code Online (Sandbox Code Playgroud)


有一个有用的onclick

GM_notification ( {
    title: 'foo', text: '42', image: 'https://i.stack.imgur.com/geLPT.png',
    onclick: () => {
            console.log ("My notice was clicked.");
            window.focus ();
    }
} );
Run Code Online (Sandbox Code Playgroud)

  • 1 秒超时的另一个例子:`GM_notification ( {title: 'foo', text: '42', timeout: 1000} );` (2认同)