Pular para o conteúdo principal

Bloco de Metadados

O conteúdo dentro de ==UserScript== descreve as permissões que um script precisa, informações sobre o script, etc. Fica no início do script.

// ==UserScript==
// @name Novo Userscript
// @namespace https://bbs.tampermonkey.net.cn/
// @version 0.1.0
// @description tente conquistar o mundo!
// @author You
// @crontab * * once * *
// ==/UserScript==

Valores Principais

name

Nome do script

namespace

Espaço de nomes do script. name + namespace determina a unicidade do script.

version

A versão do script. Recomenda-se seguir o versionamento semântico, para que quando uma mudança de versão for detectada, o usuário seja solicitado a atualizar.

description

Uma descrição detalhada do script

author

Autor do script

run-at

Quando o script é executado

ValorExecuçãoSuportado desde
document-startInjeta o script na página assim que a URL corresponde no frontendv0.3.0
document-endInjeta o script depois que o DOM foi carregado; scripts e imagens da página podem ainda estar carregandov0.3.0
document-idleInjeta o script depois que todo o conteúdo foi carregadov0.3.0
document-bodyO script só é injetado quando a página tem um elemento bodyv0.6.2
document-menuMostra um menu ao clicar com o botão direito; executa o script usando o nome do script como nome do menuv0.3.4-v0.9.4 (🔥 removido)

Para ícones de menu, consulte Símbolos Unicode e emoji.

run-in

Especifica o ambiente onde o script é injetado: @run-in normal-tabs para abas normais, @run-in incognito-tabs para abas anônimas.

early-start (v1.1.0+)

Quando run-at é document-start, o script é executado o mais rápido possível, mas não pode garantir que carregue mais rápido que a página.

Depois de definir @run-at document-start, você pode adicionar @early-start para fazer o script carregar mais rápido que a página: exemplo

inject-into

dica

No ambiente de content-script (content), unsafeWindow aponta apenas para o próprio window atual do ambiente e não pode acessar o window da página.

ScriptCat não suporta verificação automática de restrições CSP para decidir se injeta como content ou page (ou seja, @inject-into auto do Tampermonkey).

Especifica onde o script é injetado, suportando page e content, com page como padrão.

  • page: o script é injetado no ambiente da página e pode usar unsafeWindow para acessar o window e DOM da página
  • content: o script é injetado no ambiente de content-script, não pode acessar diretamente o objeto window da página, mas pode acessar o DOM da página e não está sujeito a CSP

storageName 🧪

O espaço de armazenamento para Value; dados sob o mesmo storageName podem ser compartilhados e comunicados entre scripts. Específico do ScriptCat.

background

Marca este script como um script de fundo, que precisa ser executado no ambiente de fundo. Veja Script de Fundo para detalhes.

crontab

Marca o script como um script agendado, que requer um valor de expressão cron. Apenas uma expressão cron pode existir e é executada conforme essa programação no ambiente de fundo. Veja Script Agendado para detalhes.

match

Apenas URLs correspondentes com match executarão o script, seguindo Padrões de Correspondência. Em match, * é um curinga, tld corresponde ao domínio de nível superior, e um domínio começando com *. também corresponderá a xxx.com:

ValorExemplos corretosExemplos incorretos
http://scriptcat.org/doc/matchhttp://scriptcat.org/doc/matchhttp://scriptcat.org/doc/runAt
*://*/param?*https://scriptcat.org/param | http://scriptcat.org/param?search=tampermonkeyhttps://scriptcat.org/test/param
http*://scriptcat.org/*https://scriptcat.org/ | https://scriptcat.org/dochttps://doc.scriptcat.org/

include

Suporta * para correspondência difusa, permitindo URLs não padronizadas

exclude

URLs que não devem corresponder; usa a mesma sintaxe de expressão que include

grant

Solicita permissão de API — uma API só pode ser chamada depois que foi solicitada. Veja a lista de permissões em: Documentação da API e Documentação da CAT API.

Dois valores especiais:

  • none: o script não é executado no ambiente sandbox, mas diretamente no ambiente da página. Neste ambiente, nenhuma API GM está disponível, mas o objeto window da página pode ser acessado diretamente.
  • unsafeWindow: no ambiente sandbox, se você precisa acessar o objeto window da página, use unsafeWindow. (Tampermonkey não requer declarar isso — é mantido apenas por compatibilidade.)

connect

Solicita permissão de acesso para um site; veja GM_cookie e GM_xmlhttpRequest. GM_download no modo native também reconhece @connect (hosts não declarados acionam uma confirmação).

resource

Inclui um arquivo de recurso. Após declarar @resource, você pode usar GM_getResourceText/GM_getResourceURL para recuperar as informações.

// @resource icon https://bbs.tampermonkey.net.cn/favicon.ico
// @resource html https://bbs.tampermonkey.net.cn/
// @resource xml https://bbs.tampermonkey.net.cn/sitemap.xml
// Adicionar verificação de integridade do recurso
// @resource icon https://bbs.tampermonkey.net.cn/favicon.ico#md5-xxx,sha256-xxx

require

Inclui um arquivo JS externo; suporta verificação de integridade do recurso

require-css

Inclui um arquivo CSS externo; suporta verificação de integridade do recurso

noframes

Marca o script para não ser executado dentro de um <frame>

definition

O endereço de referência de um arquivo .d.ts, habilitando dicas de autocompletar do editor

antifeature

Isso está relacionado ao marketplace de scripts; recursos indesejados precisam ser sinalizados com este valor de descrição:

// @antifeature ads Este script tem anúncios
// @antifeature referral-link Este script modifica ou redireciona para o link de referência do autor

Valores de Descrição Adicionais

license

A licença open-source do script atual

updateURL

A verificação de atualização requer que o script remoto tenha uma tag @version.

O link que o script usa para verificar atualizações; se não configurado, por padrão é user.js => meta.js do link, ou o link atual se não houver user.js.

Se @updateURL estiver configurado, @downloadURL também deve ser configurado para que @updateURL funcione.

downloadURL

O endereço de download para a atualização do script

supportURL

Site de suporte, página de relatório de bugs

homepage, homepageURL, website

Página inicial do script

source

Página do código-fonte do script

icon, iconURL, defaulticon

Ícone do script

icon64, icon64URL

Ícone do script de 64x64

Notas

Verificação de Integridade do Recurso

  • Use md5, sha1, sha256, sha384 ou sha512 para verificar se os recursos não foram adulterados. Múltiplos métodos de verificação podem ser separados com ; ou ,.
  • De acordo com as recomendações do W3C, md5 e sha1 não são recomendados; use sha384 ou um algoritmo de hash mais forte.

Exemplo:

// @require https://cdn.jsdelivr.net/npm/[email protected]/lib/darkmode-js.min.js#md5-d55836f30c097da753179f82fa6f108f,sha256-a476ab8560837a51938aa6e1720c8be87c2862b6221690e9de7ffac113811a90