我正在使用Tampermonkey来翻译Shopify的仪表板/管理员。

为了安全起见,我不希望Tampermonkey使用Shopify管理仪表板的某些部分。
商人创建的文本(在产品,页面,集合,模板等中)会被Tampermonkey取代,这确实很危险。

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

  • “指示” Tampermonkey不要转换表单内的内容。 (这似乎是最好的方法)
  • 使用@exclude指令。

  • 我已经使用了后者,但脚本未监听@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。我使用Google Chrome浏览器进行了所有检查,并且不愿意使用任何其他浏览器。

    最佳答案

    @exclude非常精确。您需要在每个排除行上都添加尾随星号。例如:

    // @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,则脚本不会触发,但是在访问时:
  • arduino.stackexchange.com/tags/
  • arduino.stackexchange.com/tags?foo=bar

  • 它会!

    将第二个排除行更改为:
    // @exclude  http://*.stackexchange.com/tags*
    

    解决问题。

    如果仍然有困难,请指定您的Chrome,Tampermonkey和操作系统的版本。并且,提供演示该问题的目标页面。

    09-26 10:06