Adicionando manualmente um Userscript ao Google Chrome

161

Em vez de "instalar" scripts de usuário, encontrei muitos tutoriais na Web para adicioná-lo manualmente. Todos eles me disseram para seguir os mesmos passos:

  • Crie o diretório C: \ Users \ Blabla \ AppData \ Local \ Google \ Chrome \ Dados do usuário \ Default \ User Scripts
  • Coloque um arquivo .js lá, que contém o script do usuário
  • Inicie o Chrome com o parâmetro --enable-user-scripts

Eu fiz isso - mas meu script de demonstração não faz nada:

// ==UserScript==
// @name           Test
// @description    Test
// @include        http://example.com/*
// @version        1.0
// ==/UserScript==

alert(0);

O que estou fazendo de errado?

YMMD
fonte
2
O suporte ao diretório de scripts do usuário foi removido em 2011. Consulte O diretório de scripts do usuário ainda funciona com o Chrome 13.0 ?: http://stackoverflow.com/questions/6968469/does-the-user-scripts-directory-still-work-with- chrome-13-0 # comment8333680_6979021 .
XP1

Respostas:

240

A melhor coisa a fazer é instalar a extensão Tampermonkey .

Isso permitirá que você instale facilmente scripts Greasemonkey e gerencie-os facilmente. Além disso, facilita a instalação de scripts de usuários diretamente de sites como OpenUserJS , MonkeyGuts etc.

Por fim, ele desbloqueia a maioria das funcionalidades GM que você não consegue instalando um script GM diretamente no Chrome. Ou seja, mais do que a GM no Firefox pode fazer, está disponível com o Tampermonkey.


Mas, se você realmente deseja instalar um script GM diretamente, é fácil uma dor certa no Chrome atualmente ...

Chrome Após cerca de agosto de 2014:

Você ainda pode arrastar um arquivo para a página de extensões e ele funcionará ... Até reiniciar o Chrome. Em seguida, ele será desativado permanentemente. Consulte Continuando a "proteger" os usuários do Chrome de extensões maliciosas para obter mais informações. Novamente, Tampermonkey é o caminho inteligente a seguir. (Ou mude completamente os navegadores para o Opera ou Firefox.)

Chrome 21 ou superior:

O Chrome está mudando a maneira como as extensões são instaladas . Os scripts do usuário são extensões reduzidas no Chrome, mas. A partir do Chrome 21 , o comportamento do clique no link é desabilitado para scripts do usuário . Para instalar um script de usuário, arraste o arquivo **. User.js * para a página Extensões (chrome://extensions na entrada de endereço).

Versões mais antigas do Chrome:

Simplesmente arraste seus arquivos **. User.js * para qualquer janela do Chrome. Ou clique em qualquer link de script do Greasemonkey.

Você receberá um aviso de instalação:
Aviso inicial

Clique em Continuar. .


Você receberá uma caixa de diálogo de confirmação:
caixa de diálogo de confirmação

Clique em Adicionar .


Notas:

  1. Os scripts instalados dessa maneira têm limitações em comparação com um script Greasemonkey (Firefox) ou um script Tampermonkey. Consulte Script de usuário em vários navegadores, seção Chrome .

Controlando o Script e o nome:

Por padrão, o Chrome instala scripts na pasta Extensões 1 , cheia de nomes enigmáticos e números de versão. E, se você tentar adicionar manualmente um script sob essa árvore de pastas, ele será apagado na próxima vez que o Chrome reiniciar.

Para controlar os diretórios e nomes de arquivos com algo mais significativo, você pode:

  1. Crie um diretório que seja conveniente para você, e não onde o Chrome normalmente procura por extensões . Por exemplo, Criar: C:\MyChromeScripts\.

  2. Para cada script, crie seu próprio subdiretório. Por exemplo HelloWorld,.

  3. Nesse subdiretório, crie ou copie o arquivo de script. Por exemplo, salve o código desta questão como: HelloWorld.user.js.

  4. Você também deve criar um arquivo de manifesto em que subdiretório, ele deve ser nomeado: manifest.json.

    Para o nosso exemplo, ele deve conter:

    {
        "manifest_version": 2,
        "content_scripts": [ {
            "exclude_globs":    [  ],
            "include_globs":    [ "*" ],
            "js":               [ "HelloWorld.user.js" ],
            "matches":          [   "https://stackoverflow.com/*",
                                    "https://stackoverflow.com/*"
                                ],
            "run_at": "document_end"
        } ],
        "converted_from_user_script": true,
        "description":  "My first sensibly named script!",
        "name":         "Hello World",
        "version":      "1"
    }

    O manifest.jsonarquivo é gerado automaticamente a partir do meta-bloco pelo Chrome, quando um script do usuário é instalado. Os valores de @includee @excludemeta-regras são armazenados include_globse exclude_globs, @match(recomendado), são armazenados na matcheslista. "converted_from_user_script": trueé necessário se você deseja usar qualquer um dos métodos suportadosGM_* .

  5. Agora, no gerenciador de extensões do Chrome (URL = chrome: // extensions / ), expanda "Modo de desenvolvedor" .

  6. Clique no botão Carregar extensão descompactada ....

  7. Para a pasta, cole na pasta para o seu script, neste exemplo é: C:\MyChromeScripts\HelloWorld.

  8. Seu script está agora instalado e operacional!

  9. Se você fizer alterações na fonte do script, clique no link Recarregar para que elas entrem em vigor:

    Recarregar link




1 O padrão da pasta é:

Windows XP:
  Chrome:% AppData% \ .. \ Configurações locais \ Dados do aplicativo \ Google \ Chrome \ Dados do usuário \ Padrão \ Extensões \
  Chromium:% AppData% \ .. \ Configurações locais \ Dados do aplicativo \ Chromium \ Dados do usuário \ Padrão \ Extensões \

Windows Vista / 7/8:
  Chrome:% LocalAppData% \ Google \ Chrome \ Dados do usuário \ Default \ Extensions \
  Chromium:% LocalAppData% \ Chromium \ Dados do Usuário \ Padrão \ Extensões \

Linux:
  Chrome: ~ / .config / google-chrome / Padrão / Extensões /
  Chromium: ~ / .config / chromium / Padrão / Extensões /

Mac OS X:
  Chrome: ~ / Biblioteca / Suporte a aplicativos / Google / Chrome / Padrão / Extensões /
  Chromium: ~ / Biblioteca / Suporte a aplicativos / Chromium / Padrão / Extensões /

Embora você possa alterá-lo executando o Chrome com a --user-data-dir=opção

Brock Adams
fonte
1
Ótima resposta - atualizada para refletir a nova política "somente da loja virtual" do Chrome. Você só pode arrastar arquivos .user.js para a janela Extensões.
crb
2
@ColonelPanic, infelizmente, não, você não pode. No momento, o manifesto gerado automaticamente não é compatível com o processo de extensão! Ele não usa "manifest_version": 2, o que agora é necessário. Use o exemplo na resposta como sua cópia inicial (ou pelo menos não esqueça a "manifest_version": 2). ... O Google está configurando todos os scripts de usuário "normais" para falhar em uma versão pendente, a menos que eles alterem o processo de manifesto automático em breve.
Brock Adams
1
@brock Eu apenas arrastei e soltei meu script de usuário na janela de extensões como a segunda resposta e agora não preciso me preocupar com a verificação do Tampermonkey. Apenas funcionou. :)
Bjorn
1
@brock Eu sei que você tem isso, mas, dada a sua recomendação para usar o Tampermonkey, uma extensão que exige acesso a todas as informações de seus sites bancários, seu facebook, tudo, a segunda resposta é melhor. E quanto a 'testado', não há absolutamente nada que alguém possa fazer para examinar uma extensão do Chrome, pois você pode atualizá-las automaticamente para fazer coisas ruins a qualquer momento e atualizá-las novamente para ocultar isso. Você teria que verificar todas as mudanças todas as vezes. É permissões para tudo. Tudo.
Bjorn
1
@marshmellooooooos, ainda funciona para mim (Chrome 54.0.2840.99 m). Se você não pode fazê-lo funcionar, instale Tampermonkey ou abrir uma nova pergunta com EXATAS detalhes do que você tentou.
Brock Adams
53

Atualização 2016: parece estar funcionando novamente.

Atualização em agosto de 2014: não funciona mais nas versões recentes do Chrome.


Sim, o novo estado de coisas é péssimo. Felizmente, não é tão difícil quanto as outras respostas sugerem.

  1. Navegue no Chrome para chrome://extensions
  2. Arraste o .user.jsarquivo para essa página.

Voila. Você também pode arrastar arquivos da barra de rodapé de downloads para a guia extensões.

O Chrome criará automaticamente um manifest.jsonarquivo no diretório de extensões documentado por Brock .

<3 Liberdade.

Coronel Panic
fonte
15
certifique-se de que o nome do arquivo seja como <scriptname> .user.js, caso contrário, o chrome não o reconhecerá como extensão #
Paco
1
@AlexTracer Funciona para mim no Chromium 33. Talvez você esteja fazendo algo errado.
user7610
4
Não funciona mais no Chrome 36. Os scripts de usuário adicionados dessa maneira vêm com a mensagem: "esta extensão não está listada na Chrome Web Store e pode ter sido adicionada sem o seu conhecimento", e a caixa de seleção ativar está desabilitada.
Protector one
2
Isso funciona para mim no Chrome 51 e não estou usando nenhum parâmetro de linha de comando. Talvez eles tenham mudado de novo?
Miscreant
6
Eu apenas tentei isso (Chrome 60) e fui enviado para uma página que diz "Extensões que não foram publicadas na Chrome Web Store estão acinzentadas e você não poderá ativá-las novamente". Parece o comportamento de agosto de 2014. Não tenho certeza se eles desabilitaram isso ou se estou apenas perdendo alguma coisa.
PNF
11

Este parâmetro está funcionando para mim:

--enable-easy-off-store-extension-install

Faça o seguinte:

  1. Clique com o botão direito do mouse no ícone "Chrome".
  2. Escolha propriedades
  3. No final da sua linha de destino, coloque estes parâmetros: --enable-easy-off-store-extension-install
  4. Deve parecer com: chrome.exe --enable-easy-off-store-extension-install
  5. Inicie o Chrome clicando duas vezes no ícone
joeytwiddle
fonte
Eu tenho que partir superuser.com/questions/450893/...
joeytwiddle
1
Os administradores também podem criar uma política para todos os usuários, com URLs permitidos na lista de autorizações por padrão: chromium.org/administrators/...
joeytwiddle
Eu realmente preciso excluir o script antigo e instalá-lo completamente novo, arrastando-o para o navegador novamente quando editei as coisas? Ou existe um caminho mais facil?
YMMD 16/08/12
Para atualizar um script, eu navego para ele no sistema de arquivos ou no servidor da web e clique em para instalar; Chrome substitui a versão antiga. Se você estiver desenvolvendo um script e não quer manter instalá-lo, tente um bookmarklet / híbrido userscript: stackoverflow.com/questions/1810885/...
joeytwiddle
Mmmm sim, parece que eles desativaram o carregamento lateral de propósito: blog.chromium.org/2018/06/…
joeytwiddle 14/04
1

Compartilhe e instale userscript com um clique

Para fazer a instalação automática (mas confirmar manualmente), você pode criar gist (gist.github.com) com o <filename>.user.jsnome do arquivo para obter a instalação com um clique ao clicar em Raw e obter esta página:

Página de instalação

Como fazer isso ?

  1. Nomeie sua essência <filename>.user.js, escreva seu código e clique em "Criar".
    Criar arquivo na essência

  2. Na página principal, clique em Raw para obter a página de instalação (primeira tela).
    Botão Raw

  3. Verifique o código e instale-o.

A-312
fonte
0

Abril de 2020 Resposta

No Chromium 81+, achei a resposta: vá para chrome: // extensions /, clique para ativar o Modo de desenvolvedor no canto superior direito e arraste e solte o script .user.js.

user1461607
fonte
No Chrome (não no Chromium), isso não funciona para mim. Ele diz que não é da Chrome Web Store e força a desativação.
Monkpit 27/04