JS und Query der zu Weiterleitung gedacht ist auslesen
Der Dummschwätzer
- javascript
0 benji
Hallo, ich habe da folgendes Problemchen von dem ich nicht weiss ob es überhaupt mit JS zu lösen ist, aber erstmal erklären worums geht...
Aaaaalso ich habe eine html seite, darin ist ein Object enthalten, bei dem Klick auf eine bestimmte Schaltfläche, Öffnet dieses Object ein neues Browser Fenster.
In diesem NEUEN Browserfenster öffnet sich dann eine Seite deren URL folgender massen zusammengesetzt ist:
http://BasisUrl.com/Query?BlaBla=osbvzsbzsrbvez....
was ich brauche ist die gesamte URL oder einen Teil davon als Wert einer VARIABLE!
So, das einzigste was ich in der lage bin zu ändern ist die:
http://BasisUrl.com/
da diese schon in dem html, in dem sich ebenfalls das Object befindet von dem aus das NEUE Fenster geöffnet wird, befindet!!!
Nun bräuchte ich eigentlich NUR den Query (bzw auch NUR einen Teil davon) in einer VARIABLE, so das ich ihn ausaeinanderpflücken kann. Nur leider weiss ich nicht wie ich an die URL, die sich wie gesagt in einem NEUEN Fenster öffnet, rankommen soll, so das ich Sie in eine VARIABLE als den Wert dieser bekomme!
Da sich immer ein Neues Fenster öffnet und ich so wenig Möglichkeiten habe den Query an irgendwas zu übergeben (ausser in php o.Ä., Ich es jedoch mit NUR html un JS erreichen will)
war mein Lösungsansatz folgender...
VARIABLE = Top.Window.location.href;
VARIABLE = VARIABLE.substring.lastIndexOf("%61",250);
wobei sich das %61 auf das = gleichheitszeichen bezieht (asciitabelle) (da ich eigentlich nur die Ziffern nach dem BlaBla= brauche) und das ,250 beziht sich auf die zuletzt eingefasste stelle...aber das möge nun BITTE aussenfor bleiben das hab ich gerad aus dem kopf hingeschrieben und falls die syntax nicht richtig ist möchte ich jetzt keine diskkussion, da ich es schon getestet habe und es funktioniert(das auseinandernemn der Variable)...
Jedoch fäng mein Problem schon früher an, nämlich in der ersten Zeile!
Meine Idee war es die Basis URL also das "http://BasisUrl.com/" auf eine "http://MeineUrl.com/MeineAusleseSeite.html?" umzuändern in dem sich das JS von oben befindet(das die Basis URL das einzigste ist was ich verändern kann sah ich das als Weg) und dann mit den Zwei obenstehenden Zeilen auszulesen und zu teilen, NUR LEIDER
wird in der VAIABLE ausschliesslich "http://MeineUrl.com/MeineAusleseSeite.html" gespeichert und der durch das Object generiert, und für mich in der Adressleiste des Browsers mit den Augen Lesbare, Query nicht berücksichtigt!
Ich habe nun schon aus Verzweiflung alles mögliche als Endung der Basisurl versucht !, %, $, & auch verschiedene Dateiendungen habe ich durch ...html, js..... Nur wird mir jedesmal erklärt das die gewünschte Seite Nicht vorhanden ist, ausser wie beschrieben bei der endung mit ?, dort wird jedoch nur die Basis URL in der VARIABLE GESPEICHERT!
Da ich nun auch nichtmehr weiter weiss ohne auf PHP o.Ä. umzusteigen bitte ich die JavaScript Gurus mal um hilfe...
Ich bin gerne bereit einen anderen Lösungsansatz zu verfolgen oder mir erklären zu lassen das es mit JS nicht möglich seie, hoffe jedoch das mir irgendjemand aus dieser misere eine hilfreiche Idee reicht, Wie gesagt das Teilen der VARIABLE IST KEIN PROBLEM... AUSSCHLIESLICH den Query bzw. die gesammte URL INKL. Query als Wert dieser VARIBLE zu bekommen ist das Problem!!!!
Gruss
Der Dummschwätzer
Hallo Dummschwätzer !
Hallo, ich habe da folgendes Problemchen von dem ich nicht weiss ob es überhaupt mit JS zu lösen ist, aber erstmal erklären worums geht...
Weil dein Artikel so lang ist, mach ich das mal so wie andere auch: Einfach direkt hier unten beim Antworten schreiben ;-)
Aaaaalso ich habe eine html seite, darin ist ein Object enthalten, bei dem Klick auf eine bestimmte Schaltfläche, Öffnet dieses Object ein neues Browser Fenster.
Was heißt "Object" ? Ich denke jetzt gleich an ActiveX-Objekt, aber ich wills nicht hoffen....
Ich bin echt ratlos, was ein Objekt bei dir sein soll. Kann mir vorstellen, dass es ein Button mit einem onClick-Eventhandler ist.
» http://BasisUrl.com/Query?BlaBla=osbvzsbzsrbvez....
was ich brauche ist die gesamte URL oder einen Teil davon als Wert einer VARIABLE!
hä - was willst du ? Also:
- Fenster öffnet sich mit irgendeiner Zieladresse (die du kennst)
- die leitet dann weiter (Grund, warum du die Addresse dann nicht kennst)
oder wie ? Also, die Adresse bekommst du ja wohl, in dem du das so machst:
var adresse;
var meinfenster = window.open("blablablab.....);
setTimeout("adresse_lesen()", 4000); // Wollen wir der Weiterleitung mal Zeit lassen
adresse_lesen()
{
alert(meinfenster.location.href); // gibt z.B: http://www.irgendwo.de/?blablabl....
alert(meinfenter.location.search); // gibt z.B: ?blablabla......
adresse = meinfenster.location.href;
}
So, das einzigste was ich in der lage bin zu ändern ist die:
http://BasisUrl.com/
da diese schon in dem html, in dem sich ebenfalls das Object befindet von dem aus das NEUE Fenster geöffnet wird, befindet!!!
... und das geht GANZ einfach !
wenn dein Fenster-Handle nun z.B. "meinfenster" ist, dann machst du das so:
meinfenster.location.href = "http://www.dahin-solls-gehn/hier.htm?mit=diesem&QUERY";
Nun bräuchte ich eigentlich NUR den Query (bzw auch NUR einen Teil davon) in einer VARIABLE, so das ich ihn ausaeinanderpflücken kann.
das geht GANZ LEICHT !
also: ERST MAL DEN QUERY: meinfenster.location.search <- das ist er mit ?
und nun schnippeln wir ihn uns zurecht. Z.B. ohne ? geht das so:
adresse = meinfenster.location.search;
adresse = adresse.substring(5,16);
alert(adresse); // = query1=bla&query2=bla
wenn du es dann noch in seine Einzel-Get-Teile machen willst (sofern es die gibt), geht das mit split(); in Arrays:
z.B. querystring ist "?qu1=bla&qu2=blo&qu3=bli"
dann gehts halt so:
adresse = meinfenster.location.search;
adresse = adresse.substring(5,16);
adresse = adresse.split("&");
und dann hast du z.B.
adresse[0] = "qu1=bla";
SOGAR DAS KANNST DU NOCH TEILEN !
z.B: so
adresse[0] = adresse[0].split("=");
oder eben alle adressen:
for(var x in adresse)
{
adresse[x] = adresse[x].split("=");
}
Lese dir dafür mal die Stringfunktionen in SelfHTML durch !
wobei sich das %61 auf das = gleichheitszeichen bezieht (asciitabelle) (da ich eigentlich nur die Ziffern nach dem BlaBla= brauche)
und das baust du dir mal jetzt selbst zusammen, wie's geht weißt du ha !
Jedoch fäng mein Problem schon früher an, nämlich in der ersten Zeile!
?
Meine Idee war es die Basis URL also das "http://BasisUrl.com/" auf eine "http://MeineUrl.com/MeineAusleseSeite.html?" umzuändern in dem sich das JS von oben befindet(das die Basis URL das einzigste ist was ich verändern kann sah ich das als Weg) und dann mit den Zwei obenstehenden Zeilen auszulesen und zu teilen, NUR LEIDER
wird in der VAIABLE ausschliesslich "http://MeineUrl.com/MeineAusleseSeite.html" gespeichert und der durch das Object generiert, und für mich in der Adressleiste des Browsers mit den Augen Lesbare, Query nicht berücksichtigt!
was ist los ? Nochmal in klarem, verständlichem kurzen deutsch ?
Also, Dummschwätzer, denn Rest raffe ich nicht mehr, sorry ;-) erkläre ihn nochmal, und dann kann ich dir hoffentlich helfen :)
benji
ums kurz zu machen
Ja es ist ein Avtive x Object.
Der artikel ist so lang in der hoffnung das es dann einer versteht wenn ichs 4 mal wiederhole was ich will..
nochmal kurz erklärt
das object erzeugt eine gesammte url zusammengestzt aus der basis url und einem query den das objet dann zussammengestzt in einem neuen fenster öffnet...
die basis url kann ich verändern sonst nix...
frage wie komme ich an den query unter js dran
mit in einer datei die sich an der veränderten basisurl befindet und location.href auslesen aus dem fenster geht nicht .
da ich 4 mal geschrieben habe das ich nicht versuche was zusammenzusetzen sondern nur versuche an den query ranzukommen dachte ich eigentlich das das klar wäre, anscheinend doch nicht
also basisurl veränderbar + query werden zusammengestzt VON dem ACTIVE X dieses wird in neuem fenster geöffnet.... wie komme ich MIT JS an den query dran damit ich den teil ....von dem ich oben 3 mal gesagt habe das ichs nicht brauche weils schon funktioniert!!!!!!!!!!!!!!! endlich nutzen kann
danke
dumschwätzer
Ja es ist ein Avtive x Object.
Und was für eins ? Für das, was ich mittlerweile verstanden habe, brauchst du KEINS.