2010-12-27 4 views
1

Ich habe 2 Skriptdateien hinzufügen, die Sie in dem jedoch <head>Wie JS-Skripte laden, die nur ein zusätzliches Skript

setzen, sie die gleiche Util Skriptdatei teilen. Ich möchte, dass, wenn sie beide auf der gleichen Seite geladen sind, die util-Datei nur einmal geladen wird.

Wenn nur einer von ihnen geladen wird, wird die util noch einmal geladen werden ... ich <script src=...utils.js> verwenden kann nicht ... nur die 2-Skripte ich verwende

var s = document.createElement("script"); 
s.src = s3 + "/js_enc/utils.js"; 
s.type = "text/javascript"; 
document.getElementsByTagName("head")[0].appendChild(s); 

Was ist der beste Weg, um das zu erreichen?

dank

Antwort

2

Dies scheint nicht wie ein Problem, da das Util Skript nur dann geladen wird, wenn es deklariert ist:

<script type='text/javascript' src='util.js'></script> 
<script type='text/javascript' src='script1.js'></script> 
<script type='text/javascript' src='script2.js'></script> 

Aber wenn Sie überprüfen möchten, dass das Skript geladen wurde könnten Sie eine globale Variable im Util Skript, so etwas wie

var utilFound = true; 

Dann sind Sie in jedem Skript gesetzt, um zu sehen, ob sie gesetzt ist oder nicht.

if(!utilFound) { alert("Util not loaded!"); } 

Sie können auch die Variable wechseln je nach bestimmten Bedingung, zum Beispiel:

if(utilFound) { 
    alert("Util hasn't been accessed yet."); 
    utilFound = false; 
} 
else { 
    alert("Util has already been accessed."); 
} 

UPDATE

Wie pro Ihrem bearbeiten "überprüfen, ob gesetzt und Toggle" die Lösung würde funktioniert gut. Wenn die Variable festgelegt wurde, führen Sie Ihren Code document.createElement nicht aus.

In Ihrem util.js Datei, fügen

var utilLoaded = false; 

Dann in jedem Skript, fügen Sie Ihre Schnipsel sowie ein utilLoaded Scheck/Knebel:

if(!utilLoaded) { 
    var s = document.createElement("script"); 
    .... 
    utilLoaded = true; 
} 
+0

Ich kann nicht .... Ich brauche nur hinzufügen Das Skript-Tag meiner ursprünglichen Skripte – Himberjack

+0

Ich brauche viel mehr Informationen, um zu verstehen, wie Ihr Code eingerichtet ist. – Ben

+0

Ich habe meine Qeustion bearbeitet. danke – Himberjack

Verwandte Themen