Werte/Variablen die in Javascript ermittelt werden mit ASP weiter...
Holger Lersch
- asp.net
0 Stefan Muenz0 Janko
...verarbeiten.
Und zwar :
...
Browser=navigator.appName;
Version=navigator.appVersion;
...
auf der Seite ist auch ein Formular, was ein ASP-Script weitergereicht wird. Wie krieg ich jetzt die beiden Variablen in mein Formular, so das sie mitgeschickt werden, oder wie kann ich direkt aus VB-Script auf die JavaScript Variablen zugreifen ?
Gruß
Holger
Hallo Holger
Wie krieg ich jetzt die beiden Variablen in mein Formular, so das sie mitgeschickt werden, oder wie kann ich direkt aus VB-Script auf die JavaScript Variablen zugreifen ?
Zwischen verschiedenen Web-Programmiersprachen Daten austauschen ist bislang noch ein weitgehend trauriges Kapitel. Da aber mehr oder weniger alle Sprachen in der Lage sind, Formularfeldinhalte auszulesen, kann man sich mit dem Trick behelfen, Variableninhalte sofort nach Aenderungen in hidden-Formularfelder zu schreiben, die auf der Seite definiert werden. Dazu kann man z.B. fuer jede Variable, die "intersprachlich" genutzt werden soll, ein hidden-Feld spendieren, z.B.
<form name="Daten"><!-- unsichtbares Formular -->
<input type="hidden" name="Browser" value="">
<input type="hidden" name="Version" value="">
</form>
und in JavaScript dann z.B.:
Browser=navigator.appName;
Version=navigator.appVersion;
document.Daten.Browser.value=Browser;
document.Daten.Version.value=Version;
Damit hat JavaScript die Formularfelder versorgt. Eine andere Sprache koennte diese Felder nun wieder auslesen.
viele Gruesse
Stefan Muenz
Wie Du allgemein Variablen zwischen JS und ASP übergeben kannst, hat ja bereits Stefan gezeigt, dafür kenne ich auch keine andere Lösung.
Sollte es sich allerdings nur um die Browservariablen handeln, so habe ich kurz mal den Code direkt für ASP aufgeschrieben, sodaß Du den Umweg über JS gar nicht machen mußt.
Hier also der ASP-Code:
Set C_Browser = Server.CreateObject("MSWC.BrowserType")
browser_name = C_Browser.browser
browser_version = C_Browser.version
Hierbei kannst Du natürlich auch noch Sachen abfragen wie z.B.:
cookies
tables
frames
javascript
javaapplets
platform
Einfach das Wort hinter C_Browser. anhängen. Also wie gesagt, wenn es "nur" um die Browservariablen geht, so ist dies vielleicht ein leichterer Weg. Ob es Dir hilft weiß ich nicht, da ich dafür das Problem nicht genau genug kenne.
Janko
» Sollte es sich allerdings nur um die Browservariablen handeln, so habe ich kurz mal den Code direkt für ASP aufgeschrieben, sodaß Du den Umweg über JS gar nicht machen mußt.
Hier also der ASP-Code:
Set C_Browser = Server.CreateObject("MSWC.BrowserType")
browser_name = C_Browser.browser
browser_version = C_Browser.version
Die Sache hat nur einen Nachteil :
die Browser-Informationen kommen dabei aus der Browscap.ini , gerade neue Netscape Browser werden da denn meist nicht erkannt.
Man kann zwar hin und wieder unter http://www.cyscape.com/browscap/
aktualisierte Dateien bekommen, die letzte ist allerdings von 16.07.1998 , Netscape 4.5 wird damit immer noch nicht erkannt.. ich habe die bei uns mühsam von Hand editiert... damit er zumindestens unter Win95 und 98 erkannt wird...
gruss
Jens
Hallo,
ich würde es nicht über die ASP-Komponente „MSWC.BrowserType" machen, da diese die Browserdaten aus einer Datei namens „BROWSCAP.INI „ ausließt. Und ob dort schon der IE5 und andere neuere Versionen von Browsern eingtragen sind, wage ich zu bezweifeln. Du kannst dir aber ruhig die arbeit machen und diese Datei per Hand erweitern <viel spaß>.
Einfacher geht es so:
Variabel = Request.ServerVariables(„HTTP_USER_Agent")
Damit bekommst du einen String zurück in dem sich der Browser, die Version, bei Netscape das Land, das Betriebsystem und die Version des Betriebsystem befindet. Die Syntax sieht dabei folgendermaßen aus:
Browser/version [Land] (Betriebsystem;Version), z.B. „Mozilla/4.5 [en] (Win98; I)".
Die ASP-Komponente „MSWC.BrowserType" benutzt diesen String und sucht damit in der „BROWSCAP.INI „ nach dem Browser. Findet er ihn, dann gibt diese Komponente die dort stehenden Eigenschaften des Browseres zurück. Sollte aber ein Browser nicht in dieser Datei stehen (z.B. Neue Versionen oder Exoten) gibt es auch keine brauchbaren Daten.
Besser währe es, wenn du den String per „Hand" zerlegst. Da Du nur den Browser und seine Version brauchst, kannst du es so machen:
Variabel = Request.ServerVariables(„HTTP_USER_Agent")
Trenn1 = INSTR(Variabel, „/")
Trenn2 = INSTR(Trenn1, Variabel, „ „)
Browser = LEFT(Variabel, Trenn1 - 1)
Version = MID(Variabel, Trenn1 + 1, Trenn2 - Trenn1 - 1)
Ich hoffe geholfen zu haben.
Bis danndann
Thomas