PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : JavaScript Frage zu globalen Variablen und deren Lebensdauer


Gast
2011-03-18, 11:00:35
Ich hab zwei html Seiten, die erste hat einen Link auf die zweite Seite (wird die Einstiegsseite, d.h. es kommen noch mehr Links). Die zweite Seite setzt in "my.js" eine globale Variable auf einen Wert. Nach einem Klick auf den "Zurück"-Link auf der zweiten Seite gelange ich zurück auf die erste Seite, in der ich den Wert aus "my.js" anzeigen will:

index.html:

<html>
<head>
<title>INDEX</title>
<script type="text/javascript" charset="utf-8" src="my.js"></script>
</head>
<body>
<h1>INDEX</h1>
<a href="./CodeScannen.html">Code scannen</a>
<script type="text/javascript">
document.write(qrcode);
</script>
</body>



CodeScannen.html:

<html>
<head>
<title>SCANNEN</title>
<script type="text/javascript" charset="utf-8" src="my.js"></script>
</head>
<body>
<h1>INDEX</h1>
<a href="#" class="btn large" onclick="scanBarcode();">Code scannen</a>
<a href="./index.html" class="btn large" >Zurück</a>
</script>
</body>


my.js:

var qrcode=4711;

var scanBarcode = function() {
window.plugins.barcodeScanner.scan(BarcodeScanner.Type.QR_CODE, function(
result) {
qrcode = result;
alert("We got a barcode: " + qrcode);
}, function(error) {
alert("Scanning failed: " + error);
}, {
yesString : "Install"
});
}


die globale Variable "qrcode" wird richtig gesetzt im Script, das Ergebnis sehe ich im alert-fenster. Gehe ich durch den Zurück-link auf die erste Seite steht der richtige Wert aber nicht dort.

Marscel
2011-03-18, 13:00:39
Globale Variablen bedeuten nicht, dass du sie einfach über Seitenrequests mitnehmen kannst. Sprich, der Kram geht verloren, wenn du den Scope der Seite schließt.

Da gibts dann Wege wie Cookies, Child-Fenster aufmachen (wie hier z.B. die Smileys-Tabelle, die dann mit dem Parent kommunizieren) oder die Seite so bauen, dass es keinen Page-Reload gibt, sondern Daten ggf. nur mit Ajax nachgeladen werden, dann geht auch die globale Variable nicht verloren.

Gast
2011-03-18, 15:10:12
.....oder alles in php verpacken

Gast
2011-03-27, 11:45:22
Hier werden die Scopes und alles Andere von JavaScript gut erklärt http://bonsaiden.github.com/JavaScript-Garden/