Tampermonkey忽略了@exclude

时间:2014-09-16 09:12:10

标签: javascript google-chrome shopify tampermonkey

我正在使用Tampermonkey处理Shopify的信息中心/管理员的翻译。

出于安全考虑,我不希望Tampermonkey使用Shopify管理员信息中心的某些部分。 由商家创建的文本(产品,页面,集合,模板......),Tampermonkey将替换这些文本非常危险。

有两种方法可以解决这个问题:

  1. "指示" Tampermonkey不翻译表单内容。 (这似乎是最好的方法)
  2. 使用@exclude指令。
  3. 我使用了后者,但脚本没有收听@exclude。这是用户名:

    // ==UserScript==
    // @name       Shopify_Admin_Spanish
    // @namespace  http://*.myshopify.com/admin
    // @version    0.1
    // @description  Tu tienda Shopify, por detrás, en español!
    // @exclude    https://*.myshopify.com/admin/products
    // @exclude    https://*.myshopify.com/admin/collections
    // @exclude    https://*.myshopify.com/admin/blogs
    // @exclude    https://*.myshopify.com/admin/pages
    // @exclude    https://*.myshopify.com/admin/themes
    // @match      https://*.myshopify.com/*
    // @copyright  microapps.com
    // ==/UserScript==
    

    PS。我使用谷歌浏览器进行了所有检查,并且不愿意使用任何其他浏览器。

1 个答案:

答案 0 :(得分:6)

@exclude非常精确。您需要在每个排除行上放置一个尾随星号。 EG:

// @exclude    https://*.myshopify.com/admin/products*
// @exclude    https://*.myshopify.com/admin/collections*
// @exclude    https://*.myshopify.com/admin/blogs*
// @exclude    https://*.myshopify.com/admin/pages*
// @exclude    https://*.myshopify.com/admin/themes*

考虑(并安装)此Tampermonkey脚本:

// ==UserScript==
// @name     _match and exclude testing
// @match    http://*.stackexchange.com/*
//
// @exclude  http://*.stackexchange.com/questions*
// @exclude  http://*.stackexchange.com/tags
// @require  http://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js
// @grant    GM_addStyle
// ==/UserScript==

$("body").prepend ('<h1 style="background: yellow;">Match Script fired on this page.</h1>');

如果您随后访问arduino.stackexchange.com/tags,脚本将不会触发,但在访问时:

它会!

将第二个排除行更改为:

// @exclude  http://*.stackexchange.com/tags*

解决了这个问题。


如果仍有问题,请指定您的Chrome,Tampermonkey和操作系统版本。并提供证明问题的目标页面。