2009-08-24 4 views
3

einige Code in etwa so vorstellen:Haben die enthaltenen JavaScript-Dateien Zugriff auf globale Variablen im übergeordneten Dokument?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 
    <HTML> 
    <HEAD> 
    <TITLE>BLAH</TITLE> 
    <script language='Javascript' type='text/javascript'> 
    var ScriptVersionReqd='1.0'; 
    </script> 

    <script language='JavaScript' type='text/javascript' src='clientscript.js'></script> 
    etc. etc. 

Hat clientscript.js Zugriff auf die Variable "ScriptVersionReqd"? Wenn nicht, warum nicht?

Antwort

8

Ja.

Solange die globale Variable in den globalen Gültigkeitsbereich gesetzt wurde, bevor sie vom externen Skript aufgerufen wird.

Edit als Antwort auf einen Kommentar: Siehe here für eine gute Erklärung der Javascript-Variablen-Bereich.

+0

Wie lege ich die globale Variable in globalen Geltungsbereich? – frankster

+0

Ich hatte ein wenig Redundanz in diesem Satz. Eine Variable ist global, wenn sie global definiert ist. Eine Variable wird in den globalen Gültigkeitsbereich gesetzt, indem sie entweder außerhalb einer Funktion initialisiert wird oder innerhalb einer Funktion als nicht lokale Variable initialisiert wird. –

2

Ja. Sie können Beispiele in Sachen wie Google Adsense sehen. Bei AdSense definieren Sie zuerst die Breite, Farben usw. Dann fügen Sie das Skript ein, das nach diesen Variablen sucht, und bestimmt die Ausgabe auf der Grundlage dieser Werte.

<script type="text/javascript"><!-- 
    google_ad_client = "pub-42235573"; 
    google_ad_slot = "0774868545"; 
    google_ad_width = 728; 
    google_ad_height = 90; 
    //--> 
</script> 
<script type="text/javascript" 
     src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> 
</script> 
1

Ja, es gibt keinen Unterschied für den Bereich, ob das Skript aus einer Datei oder Inline im Skript-Tag enthalten ist.

Verwandte Themen