Heim > Web-Frontend > js-Tutorial > Übergabe von Parametern an JS-Dateien (ausführliche Erklärung)_Javascript-Kenntnisse

Übergabe von Parametern an JS-Dateien (ausführliche Erklärung)_Javascript-Kenntnisse

WBOY
Freigeben: 2016-05-16 16:42:07
Original
1583 Leute haben es durchsucht

1. Globale Variablen verwenden

Dies ist der einfachste Weg, wie zum Beispiel Google Adsense:

Code kopieren Der Code lautet wie folgt:


Der Nachteil besteht darin, dass globale Variablen eingeführt werden. Es gibt zwei Varianten, wie Dateien eingeführt werden:

// 变体1:用document.write输出
 <script type="text/javascript"> google_ga_id ='g6u7un8646xx'; 
document.write(unescape('%3Cscript type="text/javascript" src= "http://www.google-analytics.com/ga.js"%3E%3C/script%3E')); </script> 
// 变体2:用DOM操作append到head里 
<script type="text/javascript"> 
G_BEACON_ATP ='category=&userid=&channel=112ad_id=';
 document.getElementsByTagName('head')[0].appendChild(document. createElement('script')).src='http://taobao.com/atp.js'; 
</script> // 注意:上面的代码是根据实际应用虚拟的示范代码

Nach dem Login kopieren

Hinweis: Variante 1 hat viele Anwendungsmöglichkeiten:

<script type="text/javascript"> 
// 直接转义即可: 
document.write('<script type="text/javascript" src="test.js"></script>'); 
// 或者像Yahoo!首页一样: 
document.write('<scr'+'ipt type="text/javascript" src="test.js"></scr'+'ipt>');
</script>

Nach dem Login kopieren

2. Erhalten und analysieren Sie den Quellcode des Skriptelements

Im Vergleich zu allen Variablen bevorzugen wir die Übergabe von Parametern wie den folgenden:

Das Kernproblem besteht darin, wie man das src-Attribut erhält.

Methode eins besteht darin, das ID-Attribut zum Skript hinzuzufügen, das aktuelle Skript über die ID abzurufen und dann reguläre Ausdrücke zu verwenden, um die Parameter aus src zu extrahieren. Der Nachteil besteht darin, dass das SCRIPT-Element in der HTML 4.01-Spezifikation kein id-Attribut hat. Dieser Mangel ist kein Mangel. Schließlich ist es besser, an Standards zu glauben, als keine Standards zu haben.

Methode 2 besteht darin, den Namen der js-Datei als Hook zu verwenden. Nach der Übergabe von document.getElementsByTagName('script') im js-Code wird die aktuelle js-Datei mit dem regulären Ausdruck abgeglichen. Diese Methode ist sehr orthodox, erfordert jedoch einen eindeutigen Dateinamen. Der Nachteil besteht darin, dass es viel Code gibt, dieser nicht verfeinert ist und einen leichten Einfluss auf die Leistung hat.

Methode drei basiert auf Methode eins. Fügen Sie einfach benutzerdefinierte Attributdaten hinzu:

Rufen Sie in der Datei test.js die eingehenden Parameter über die folgende Zeile ab:

var scriptArgs = document.getElementById('testScript').getAttribute('data'); Die vierte Methode besteht darin, den sequentiellen Ausführungsmechanismus von js zu verwenden (die js-Datei kann synchron oder asynchron geladen werden, aber wenn sie ausgeführt wird). müssen entsprechend sequentiell im Belegfluss ausgeführt werden). Wenn eine js-Datei ausgeführt wird, muss es die letzte unter den „geladenen“ js-Dateien sein:

var scripts = document.getElementsByTagName('script'); var currentScript = scripts[scripts.length - 1];Methode 4 ist cleverer und genialer als Methode 2.

In Bezug auf Codevereinfachung und Leistung ist Methode drei > Methode vier >

Zusammenfassung: Wenn Ihnen Standards am Herzen liegen, empfehlen wir Methode vier; wenn Sie, wie ich, nicht das Bedürfnis verspüren, Standards vollständig einzuhalten, empfehlen wir Methode drei.

Schreiben Sie ein Testprogramm

<!DOCTYPE html>
<html>
<script src="a2.js">
</script>
<script src="a2.js">
</script>
<script src="a2.js">
</script>
</html>

Nach dem Login kopieren
a2.js

var scripts = document.getElementsByTagName('script'); var currentScript = scripts.length;alert(currentScript);

Separat ausdrucken

1 2 3

3. Inspirationsplan

Wenn Sie wie ich ein treuer Fan von John Resig sind, erinnern Sie sich vielleicht noch an die „Degrading Script Tags“, die im August letzten Jahres viel diskutiert wurden. John Resig hat uns eine Tür der Fantasie geöffnet. Für das Problem dieses Artikels können wir auch die folgenden „bösen Wege“ nutzen, um es zu lösen:

In js-Datei:

var scripts = document.getElementsByTagName("script"); 
var scriptArgs = scripts[ scripts.length - 1 ].innerHTML.replace(/[s]/g, '');

Nach dem Login kopieren
Der Fantasie sind keine Grenzen gesetzt, Sie können auch onload verwenden:

Definieren Sie einfach die Funktion in der js-Datei:

TB = {}; 
TB.SomeFun = function(arg) { 
//code
};

Nach dem Login kopieren
Der obige Code kann in Nicht-IE-Browsern korrekt ausgeführt werden. Für einen dummen IE müssen Sie ein paar Codezeilen hinzufügen:

if(window.ActiveXObject) { 
var scripts = document.getElementsByTagName('script'); 
eval(scripts[scripts.length - 1].getAttribute('onload'));
}
Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage