【发布时间】:2015-09-12 16:06:54
【问题描述】:
我想在所有 YouTube.com 网站上专门运行这个 TamperMonkey 脚本:
// ==UserScript==
// @name YouTubeFakeScriptName
// @version 0.3
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
// @grant GM_addStyle
// ==/UserScript==
// Insert any JavaScript here.
这就是问题所在,它不仅限于 YouTube。 我尝试了很多替代方案:
// @namespace http://youtube.com
// @namespace https://youtube.com
// @namespace https://youtube.com/
// @namespace https://youtube.com/*
// @namespace youtube.com
// @namespace *
// @namespace */youtube.com/*
与@include 类似,这是http://tampermonkey.net/documentation.php 上所说的
脚本应该运行的页面。允许多个标签实例。
请注意@include 不支持 URL 哈希参数。请访问此论坛主题以获取更多信息:单击。
代码:
// @include http://tampermonkey.net/*
// @include http://*
// @include https://*
// @include *
除了许多其他可能性,但我似乎无法将范围仅适用于 YouTube,我可以:
- 将所有 TamperMonkey 代码应用于所有网站
- 不对所有网站应用 TamperMonkey 代码
- 按下扩展时出现 TamperMonkey 脚本
- 保持绿色
- 成为红色
- 按下扩展时不显示 TamperMonkey 脚本
最后一个选项更奇怪,使用 match 有奇怪的行为;如果我使用任何一种,我什至无法在单击扩展按钮时显示我的脚本:
// @match https://youtube.com/*
// @match *
但如果我根本不使用@match 或使用,脚本确实会出现:
// @match */*
附加:我可以确认在单击 Tampermonkey 时使用以下命令不会在扩展程序中产生脚本:
// ==UserScript==
// @name YouTubeRandomAppHere
// @match https://youtube.com/*
// @version 0.3
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js
// @grant GM_addStyle
// ==/UserScript==
解决方案需要几个步骤,这些步骤已添加到底部的原始帖子中,以便其他人也可以学习。感谢您的帮助。
删除@namespace 添加两者:
// @match *://*.youtube.com/*
// @noframes
【问题讨论】:
-
我不认为
namespace做任何事情,它更多的是为了元而不是执行。 -
仅供参考,我一直在阅读这篇文章和许多 SO 帖子以寻求想法:tampermonkey.net/documentation.php
-
到目前为止,所有匹配项保存下面的匹配项使脚本甚至不出现 // @match / 它只匹配所有 url
-
您需要向我们展示整个用户脚本文件,以便我们自己尝试。
标签: javascript youtube tampermonkey