Autor Thema: JavaScript im Internet Explorer  (Gelesen 3757 mal)

Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
JavaScript im Internet Explorer
« am: 20.01.05 - 17:11:29 »
Hi Folks,

ich werde noch ganz kirre...  >:(

Folgendes Script im JSHeader der Seite:

Zitat
var pForm = window.opener.document.forms[ 0 ];

function acceptResearcher() {
  var fullName = document.forms[ 0 ].$researcherFullName.value;
  pForm._researcherListBox.options[pForm._researcherListBox.options.length] = new Option(fullName,fullName);
  window.close();
}

Es handelt sich um einen Dialog, der von einem anderen Fenster aufgerufen wurde. Er zeigt eine Liste an, aus welcher der Benutzer einen Eintrag auswählen soll. $researcherFullName ist ein Feld bzw. input Element, das auch korrekt angezeigt und ausgewertet wird. Im Firefox funktioniert das Skript einwandfrei. Der Internet Explorer meldet mir immer einen Fehler in der Übergabezeile, in der eine neue Option angelegt wird (pForm._researcherListBox...).

Ich habe keine Ahnung, wieso in der Zeile ein Fehler gemeldet wird, obwohl im Firefox alles astrein läuft. Hat jemand vielleicht eine Idee, einen Hinweis dazu? Die Funktion muss leider zwingend im Internet Explorer laufen.

Viele Grüße
Harry
« Letzte Änderung: 20.01.05 - 17:21:06 von HarryB »
Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

Offline Thomator

  • Senior Mitglied
  • ****
  • Beiträge: 353
  • Geschlecht: Männlich
Re: JavaScript im Internet Explorer
« Antwort #1 am: 20.01.05 - 17:17:05 »
Hallo Harry,

ich denke mal, dass es an der Definition von pForm liegt.
'forms' liefert ja einen Array aller Forms im Dokument. Wenn nur eine Form da ist, kann der Firefox damit sicher umgehen, IE wohl nicht.

Probiers doch mal mit 'forms[0]'.

Thomas
+++To be human is more important than to be important!+++

Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
Re: JavaScript im Internet Explorer
« Antwort #2 am: 20.01.05 - 17:20:45 »
@Thomas: Danke für den Hinweis, das scheint sich aber um einen Darstellungsfehler des Forums zu handeln. Ich habe bereits den Verweis auf forms so, wie du es vorschlägst.

Viele Grüße
Harry
Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

Offline Thomator

  • Senior Mitglied
  • ****
  • Beiträge: 353
  • Geschlecht: Männlich
Re: JavaScript im Internet Explorer
« Antwort #3 am: 20.01.05 - 17:30:33 »
Hallo Harry,

war wohl wirklich ein Fehler bei der Anzeige, jetzt sehe ich es auch...

Aber einen hab ich noch:

Versuch doch mal, das Feld nicht direkt über Form und Namen, sondern mit:

var field = document.getElementsByName("_researcherListBox")[0];

einzufangen. Das funktioniert meines Erachtens nach auch in allen Browsern und verursacht weniger Probleme...

Thomas
+++To be human is more important than to be important!+++

Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
Re: JavaScript im Internet Explorer
« Antwort #4 am: 20.01.05 - 17:44:26 »
Dasselbe Phänomen: im Firefox gehts, im Internet Explorer nicht! Siehe Anhang.

Viele Grüße
Harry :-\

Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

Offline umi

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.062
  • Geschlecht: Männlich
  • one notes to rule'em all, one notes to find'em....
    • Belsoft AG
Re: JavaScript im Internet Explorer
« Antwort #5 am: 21.01.05 - 08:14:16 »
Errorhandling funktioniert auch in JS:
Versuch doch mal folgendes
Code
var pForm = window.opener.document.forms[ 0 ];

function acceptResearcher() {
try{
  var fullName = document.forms[ 0 ].$researcherFullName.value;
  pForm._researcherListBox.options[pForm._researcherListBox.options.length] = new Option(fullName,fullName);
  window.close();
}
catch(e) 
{
alert(e.description);
}
}
evtl. hilft dir das weiter
Gruss

Urs

<:~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Jegliche Schreibfehler sind unpeabischigt
http://www.belsoft.ch
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~:>

Offline Thomator

  • Senior Mitglied
  • ****
  • Beiträge: 353
  • Geschlecht: Männlich
Re: JavaScript im Internet Explorer
« Antwort #6 am: 21.01.05 - 08:31:18 »
Hallo,

Das sieht eher nach einem Rechteproblem aus. Ist der URL für das neue Fenster komplett mit Protokollangabe und allem SchnickSchnack?

Thomas
+++To be human is more important than to be important!+++

Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
Re: JavaScript im Internet Explorer
« Antwort #7 am: 21.01.05 - 10:30:20 »
Hallo,

Das sieht eher nach einem Rechteproblem aus. Ist der URL für das neue Fenster komplett mit Protokollangabe und allem SchnickSchnack?

Thomas
Nein, es waren immer nur relative Links. Der Browser sollte da aber http und den Schnickschnack selbst einsetzen.

Mit absoluten Links klappt es aber auch nicht.

Viele Grüße
Harry
Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

Offline Thomator

  • Senior Mitglied
  • ****
  • Beiträge: 353
  • Geschlecht: Männlich
Re: JavaScript im Internet Explorer
« Antwort #8 am: 21.01.05 - 10:40:38 »
Hi,

ich hatte auch mal so ein Problem, weil der URL mit Protokoll und so war, da wurde der Zugriff auf die öffnende Seite verweigert.

Wenn's aber nicht so ist...

Mich irritiert die Meldung 'Serverfehler' etwas. Wenn in Scripten ein Fehler kommt, wird normalerweise auch ein Scriptfehler angezeigt.

Kann es evtl. an einer Sicherheitseinstellung des Browsers liegen?

Thomas
+++To be human is more important than to be important!+++

Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
Re: JavaScript im Internet Explorer
« Antwort #9 am: 21.01.05 - 10:51:23 »
Errorhandling funktioniert auch in JS:
Versuch doch mal folgendes
Code
var pForm = window.opener.document.forms[ 0 ];

function acceptResearcher() {
try{
  var fullName = document.forms[ 0 ].$researcherFullName.value;
  pForm._researcherListBox.options[pForm._researcherListBox.options.length] = new Option(fullName,fullName);
  window.close();
}
catch(e) 
{
alert(e.description);
}
}
evtl. hilft dir das weiter

Leider nein.  :-\
Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
Re: JavaScript im Internet Explorer
« Antwort #10 am: 21.01.05 - 10:52:36 »
Kann es evtl. an einer Sicherheitseinstellung des Browsers liegen?

Thomas
Sollte nicht so sein. Ich hatte den Server mal als Vertrauenswürdige Seite eingetragen. Hat trotzdem nicht geklappt.  :-\

Viele Grüße
Harry
Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

Offline Thomator

  • Senior Mitglied
  • ****
  • Beiträge: 353
  • Geschlecht: Männlich
Re: JavaScript im Internet Explorer
« Antwort #11 am: 21.01.05 - 10:59:53 »
Hast Du das XP-Servicepack 2 installiert? Wenn mich nicht alles täuscht haben die da was mit Popups und Zugriffen auf andere Fenster gedreht...

Wenn ja, probier doch mal auf einem Rechner ohne. Und wenn es dort funzt weißt Du zumindest, wo Du ansetzen musst.

Thomas
+++To be human is more important than to be important!+++

Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
Re: JavaScript im Internet Explorer
« Antwort #12 am: 21.01.05 - 11:08:42 »
Yo, ich habe XP2 installiert.

Tatsache ist, dass die DialogDemo von jnotes einwandfrei funktioniert. Dort wird auch auf andere Fenster zugegriffen.

Aber ich probiere es trotzdem mal ohne, auch wenn ich grad nicht weiss, wo ich so einen rechner auftreiben soll.

Nachtrag: hab's ausprobiert. Klappt nicht. :(

Viele Grüße
Harry
« Letzte Änderung: 21.01.05 - 11:14:35 von HarryB »
Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

Offline Thomator

  • Senior Mitglied
  • ****
  • Beiträge: 353
  • Geschlecht: Männlich
Re: JavaScript im Internet Explorer
« Antwort #13 am: 21.01.05 - 11:29:32 »
Tja, nun bin ich mit meinem Latein am Ende...
schnief!!   :'(
+++To be human is more important than to be important!+++

Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
Re: JavaScript im Internet Explorer
« Antwort #14 am: 21.01.05 - 11:30:46 »
Hm, ich habe das ganze jetzt mal ausprobiert, indem ich den Ausgewählen Wert nicht als Option für eine Listbox neu erstelle, sondern einfach nur an ein Textfeld des übergeordneten Dokumentes übergebe. Das funktioniert. Das Problem ist also, dass ich keine Select Auswahl einer übergeordneten Instanz mit dem IE manipulieren kann. Das ist aber doof...

Viele Grüße
Harry
Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

Offline Thomator

  • Senior Mitglied
  • ****
  • Beiträge: 353
  • Geschlecht: Männlich
Re: JavaScript im Internet Explorer
« Antwort #15 am: 21.01.05 - 11:35:00 »
Ha,
Vorschlag:

Schreib die neuen Werte in ein verstecktes Feld im Orginaldokument, setzte ein flag (z.B. onReloadRefreshBox) oder so, löse aus dem Popup beim Schließen ein reload aus, und wenn der Flag gesetzt ist wird im onLoad des Original-Fensters die Auswahl befüllt.

Na, klingt das nach einem Ansatz??

Thomas
+++To be human is more important than to be important!+++

Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
Re: JavaScript im Internet Explorer
« Antwort #16 am: 21.01.05 - 11:54:43 »
Yo, dieselbe Idee kam mir auch. Ich bin allerdings noch nicht ganz sicher, wo und wie ich den Reload auslösen kann/soll. Aber ich probiere mal rum.

Danke schon mal so weit.

Viele Grüße
Harry
Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

Offline Thomator

  • Senior Mitglied
  • ****
  • Beiträge: 353
  • Geschlecht: Männlich
Re: JavaScript im Internet Explorer
« Antwort #17 am: 21.01.05 - 13:27:52 »
Hallo Harry,

ein Reload ist glaub ich doch nicht so das Richtige, dann haut es Dir die zurückgeschriebenen Werte ja wieder weg.

Besser ist evtl. im onSubmit den flag abzufragen, die Funktion für das setzen der Options auszuführen und wenn der flag halt für das setOptions gesetzt ist, noch ein return false im onSubmit.

Dann wird das Formular auch nicht übertragen...

Das müßte allerdings auch im onReload funzen.

Thomas
+++To be human is more important than to be important!+++

Offline HarryB

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 521
  • Geschlecht: Männlich
Re: JavaScript im Internet Explorer
« Antwort #18 am: 21.01.05 - 14:47:50 »
Hi Folks,

jetzt habe ich doch eine funktionierende Alternative gefunden. Eigentlich ganz einfach, muss man nur drauf kommen...

Im Ausgangsdokument habe ich folgende Funktion definiert:
Zitat
function addAuthor(value) {
  var f = document.forms["_wAuthorlistDialog"];
  var s = f._researcherListBox;
  s.options[s.options.length] = new Option (value,value);
}

In der Dialogbox, in der die eigentliche Auswahl stattfindet greife ich so auf diese Funktion zu:
Zitat
window.opener.addAuthor(fullName);

Voilá! Funkitoniert in beiden Browsern! :D

Viele Grüße
Harry, dessen Wochenende gerettet ist! :D
Harald "HarryB" Börger

2 x 7.0.2FP1 auf AIX (Cluster)
1 x 7.0.2FP2 auf AIX
1 x 6.5.5 auf AIX
4 x 7.02.FP2 auf WIN

Clients: 7.0.2

Offline Thomator

  • Senior Mitglied
  • ****
  • Beiträge: 353
  • Geschlecht: Männlich
Re: JavaScript im Internet Explorer
« Antwort #19 am: 21.01.05 - 15:17:20 »
Hi,

es war mir gar nicht bewußt, dass man auf Funktionen des Openers so einfach zugreifen kann.

Man lernt halt nie aus... :P

Thomas

+++To be human is more important than to be important!+++

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz