Existe uma maneira mais simples (nativa, talvez?) De incluir um arquivo de script externo no navegador Google Chrome?
Atualmente estou fazendo assim:
document.head.innerHTML += '<script src="http://example.com/file.js"></script>';
javascript
google-chrome
console
include
technocake
fonte
fonte
Respostas:
appendChild()
é uma maneira mais nativa:fonte
TypeError: Property 'appendChild' of object #<HTMLHeadElement> is not a function
javascript_code
</code> para injetar código javascript diretoVocê usa alguma estrutura AJAX? Usando jQuery, seria:
Se você não estiver usando nenhuma estrutura, veja a resposta de Harmen.
(Talvez não valha a pena usar o jQuery apenas para fazer uma coisa simples ( ou talvez seja ), mas se você já o carregou, também pode usá-lo. Vi sites que têm o jQuery carregado, por exemplo, com o Bootstrap, mas ainda assim use a API DOM diretamente de uma maneira que nem sempre é portátil, em vez de usar o jQuery já carregado para isso, e muitas pessoas não sabem que nem sequer
getElementById()
funciona de maneira consistente em todos os navegadores - consulte esta resposta para obter detalhes. )ATUALIZAR:
Faz anos desde que escrevi esta resposta e acho que vale a pena destacar aqui que hoje você pode usar:
carregar scripts dinamicamente. Isso pode ser relevante para as pessoas que estão lendo esta pergunta.
Veja também: A conversa fluente de 2014 de Guy Bedford: Fluxos de trabalho práticos para os módulos ES6 .
fonte
$.getScript('script.js');
ou$.getScript('../scripts/script.js');
então relativo ao documento, mas também pode carregar URLs absolutos, por exemplo.$.getScript('https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.6.0/underscore.js');
Nos navegadores modernos, você pode usar a busca para baixar o recurso ( Mozilla docs ) e depois avaliar para executá-lo.
Por exemplo, para baixar o Angular1, você precisa digitar:
fonte
eval
, com a seguinte mensagem:VM1929:11 Uncaught (in promise) EvalError: Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self' blob: filesystem: chrome-extension-resource:".
No chrome, sua melhor opção pode ser a guia Snippets em Origens nas Ferramentas do desenvolvedor.
Isso permitirá que você escreva e execute o código, por exemplo, em uma página em branco about:.
Mais informações aqui: https://developers.google.com/web/tools/chrome-devtools/debug/snippets/?hl=en
fonte
Como acompanhamento da resposta de @ maciej-bukowski acima ^^^ , nos navegadores modernos a partir de agora (primavera de 2017) que suportam async / wait, você pode carregar da seguinte maneira. Neste exemplo, carregamos a biblioteca load html2canvas:
Se você executar o snippet e abrir o console do navegador, deverá ver a função html2canvas () agora definida.
fonte
fonte
Se alguém falhar ao carregar porque o script hes viola o script-src "Política de segurança de conteúdo" ou "porque a segurança não é permitida", aconselharei o uso do meu injetor de módulo muito pequeno como um snippet de ferramentas de desenvolvimento, então você poderá carregar assim:
esta solução funciona porque:
fonte
Eu uso isso para carregar o objeto nocaute ko no console
ou hospede localmente
fonte
Instale tampermonkey e adicione o seguinte UserScript a um (ou mais)
@match
URL de página específico (ou a uma correspondência de todas as páginas :),https://*
por exemplo:Sempre que você precisar da biblioteca no console ou em um snippet, ative o UserScript específico e atualize.
Esta solução evita a poluição do espaço para nome . Você pode usar espaços para nome personalizados para evitar a substituição acidental de variáveis globais existentes na página.
fonte