Ich wollte eine Funktion aufrufen, die in einer first.js-Datei in der second.js-Datei definiert ist. Beide Dateien werden in einer HTML-Datei wie folgt definiert:
<script type="text/javascript" src="first.js"></script>
<script type="text/javascript" src="second.js"></script>
Ich möchte Anruf fn1()
in definiert first.js
in second.js
. Aus meinen Suchanfragen ging hervor, ob first.js
es möglich ist, wenn zuerst definiert wird, aber aus meinen Tests habe ich keine Möglichkeit gefunden, dies zu tun.
Hier ist mein Code:
second.js
document.getElementById("btn").onclick = function() {
fn1();
}
first.js
function fn1() {
alert("external fn clicked");
}
javascript
html
m0j1
quelle
quelle
Antworten:
Eine Funktion kann nur aufgerufen werden, wenn sie in derselben Datei definiert oder vor dem Versuch, sie aufzurufen, geladen wurde.
Eine Funktion kann nur aufgerufen werden, wenn sie sich im selben oder einem größeren Bereich befindet als derjenige, der versucht, sie aufzurufen.
Sie deklarieren die Funktion
fn1
in first.js und dann in secondfn1();
1.js:
2.js:
index.html:
quelle
$(document).ready(function() {...})
Blocks und es funktionierte nicht. Ich habe es bewegt und es hat wie ein Zauber funktioniert.Sie können die Funktion zu einer globalen Variablen machen
first.js
, einen Blick auf den Abschluss werfen und ihn nichtdocument.ready
außerhalb platzierenSie können auch Ajax verwenden
Ebenso können Sie jquery getScript verwenden
quelle
1. JS:
2. JS:
Hoffe das hilft ... Happy Coding.
quelle
jQuery.getScript()
Sie können die es6-Import-Export-Syntax verwenden. In Datei 1;
Und dann in Datei 2;
Bitte beachten Sie, dass dies nur funktioniert, wenn Sie verwenden
<script src="./file2.js" type="module">
Sie benötigen keine zwei Skript-Tags, wenn Sie dies auf diese Weise tun. Sie benötigen lediglich das Hauptskript und können dort alle anderen Inhalte importieren.
quelle
cross-origin script load denied by cross-origin resource sharing policy
Es sollte so funktionieren:
1.js
2.js
index.html
Ausgabe
Versuchen Sie dieses CodePen-Snippet: Link .
quelle
Bitte beachten Sie, dass dies nur funktioniert, wenn die
Tags befinden sich im Körper und NICHT im Kopf.
So
=> unbekannte Funktion fn1 ()
Schlägt fehl und
funktioniert.
quelle
Verwenden Sie den Cache, wenn Ihr Server dies zulässt, um die Geschwindigkeit zu verbessern.
Und dann benutze es so:
Optional können Sie einen Prototyp erstellen, um ihn flexibler zu gestalten. Damit Sie die Datei nicht jedes Mal definieren müssen, wenn Sie eine Funktion aufrufen oder wenn Sie Code aus mehreren Dateien abrufen möchten.
quelle
first.js
Second.js
index.html
quelle
quelle
Deklarieren Sie die Funktion im globalen Bereich mit Fenster
first.js
second.js
schließen Sie so ein
quelle
Das kommt eigentlich sehr spät, aber ich dachte, ich sollte teilen,
in index.html
in 1.js
in 2.js
quelle
Verwenden Sie "var", während Sie eine Funktion erstellen. Dann können Sie von einer anderen Datei aus darauf zugreifen. Stellen Sie sicher, dass beide Dateien gut mit Ihrem Projekt verbunden sind und aufeinander zugreifen können.
file_1.js
Zugriff auf diese Funktion / Variable aus der Datei file_2.js
hoffe das hilft jemandem, fröhliche Codierung !!!
quelle
Referenz von https://hype.codes/how-include-js-file-another-js-file
quelle
Ich habe das gleiche Problem gehabt. Ich habe Funktionen innerhalb der jquery document ready- Funktion definiert.
Und diese Funktion xyz () habe ich in einer anderen Datei aufgerufen. Das funktioniert nicht :) Sie müssen die Funktion über dem Dokument bereit definieren .
quelle