Eu queria chamar uma função definida em um arquivo first.js no arquivo second.js. ambos os arquivos são definidos em um arquivo HTML como:
<script type="text/javascript" src="first.js"></script>
<script type="text/javascript" src="second.js"></script>
Quero chamar fn1()
definido first.js
em second.js
. Nas minhas pesquisas, as respostas foram first.js
definidas se primeiro for possível, mas nos meus testes não encontrei nenhuma maneira de fazer isso.
Aqui está o meu código:
second.js
document.getElementById("btn").onclick = function() {
fn1();
}
first.js
function fn1() {
alert("external fn clicked");
}
javascript
html
m0j1
fonte
fonte
Respostas:
Uma função não pode ser chamada, a menos que tenha sido definida no mesmo arquivo ou em uma carregada antes da tentativa de chamá-la.
Uma função não pode ser chamada, a menos que esteja no mesmo ou maior escopo do que a que está tentando chamá-la.
Você declara a função
fn1
no first.js e, em seguida, no segundo, você pode simplesmente terfn1();
1.js:
2.js:
index.html:
fonte
$(document).ready(function() {...})
bloco e não funcionou. Eu mudei e funcionou como um encanto.Você pode transformar a função em uma variável global,
first.js
observar o fechamento e não colocá-lo emdocument.ready
lo foravocê também pode usar ajax
Da mesma maneira que você pode usar o jquery getScript
fonte
1ª JS:
2º JS:
Espero que isso ajude ... Feliz codificação.
fonte
jQuery.getScript()
Você pode considerar o uso da sintaxe de exportação e importação es6. No arquivo 1;
E então no arquivo 2;
Observe que isso só funciona se você estiver usando
<script src="./file2.js" type="module">
Você não precisará de duas tags de script se fizer dessa maneira. Você simplesmente precisa do script principal e pode importar todos os seus outros itens para lá.
fonte
cross-origin script load denied by cross-origin resource sharing policy
Deve funcionar assim:
1.js
2.js
index.html
resultado
Experimente este snippet CodePen: link .
fonte
Observe que isso só funciona se o
as tags estão no corpo e NÃO na cabeça.
assim
=> função desconhecida fn1 ()
Falha e
trabalho.
fonte
Use cache se o servidor permitir melhorar a velocidade.
E então use-o assim:
Opcionalmente, faça um protótipo para torná-lo mais flexível. Para que você não precise definir o arquivo todas as vezes, se chamar uma função ou desejar buscar código de vários arquivos.
fonte
first.js
Second.js
index.html
fonte
fonte
declarar função no escopo global com janela
first.js
second.js
incluir assim
fonte
Isso está chegando muito tarde, mas pensei em compartilhar,
em index.html
em 1.js
em 2.js
fonte
use "var" ao criar a função, e poderá acessá-la a partir de outro arquivo. verifique se os dois arquivos estão bem conectados ao seu projeto e se podem acessar um ao outro.
file_1.js
acessando esta função / formulário variável file_2.js
espero que isso ajude alguém, codificação feliz !!!
fonte
referência de https://hype.codes/how-include-js-file-another-js-file
fonte
Eu tive o mesmo problema. Eu tive funções definidas dentro da função jquery document ready .
E essa função xyz () chamei em outro arquivo. Isso não funciona :) Você precisa definir a função acima do documento pronto .
fonte