1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119:
/* KONSTANTE(N) ************************************************************/ /* vordefinierte site-weite default-größen: */ var standardX = 500; var standardY = 560; var autoX = 300; var autoY = 300; var helpX = 450; var helpY = 500; var schweinigX = 200; var schweinigY = 150; var popupProperties = "toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes"; /* INTERNE HILFSFUNKTION(EN) ***********************************************/ /* getHrefFromA gibt das href-attribut des kompletten a-elements zurück, */ /* falls ein solches übergeben worden ist. wenn nicht, dann nicht. */ /* dies macht nur sinn, wenn unser liebes cms nps die links verwaltet */ function getHrefFromA( url ) { /* vb: fixme: das ist noch nicht der href, */ /* sondern einfach das erste doppelt gequotete attribut: */ return (url.indexOf( "= 1) ? getHrefFromA( windowOpen.arguments[ 0 ] ) : "about:blank"; /* bei 2 parametern ist der 2te der popup-typ (help, standard) als string */ type = (windowOpen.arguments.length == 2) ? windowOpen.arguments[ 1 ] : "standard"; if (type == "schweinig") { /* vb: was das wort schweinig angeht: */ /* das javascript des popups muss natürlich auch noch seinen beitrag dazu beitragen: */ /* z.b.: resize, positionierung (bzw.move), rightclick=leftclick */ popupProperties = "fullscreen=yes"; } /* wer hier was übergibt, das nicht über der funktion definiert ist, ist selber schuld */ bridth = eval( type + "X" ); height = eval( type + "Y" ); /* bei 3 parametern sind der 2te & der 3te die größenangaben */ if (windowOpen.arguments.length >= 3) { bridth = parseInt( windowOpen.arguments[ 1 ] ); height = parseInt( windowOpen.arguments[ 2 ] ); /* vb: fixme: wenn hier müll übergeben worden ist, dann könnte man standardX & -Y hernehmen */ } /* bei 4 parametern ist der letzte der name des popups, */ /* um mehrere popups gleichzeitig & unabhängig voneinander öffnen & ansprechen zu können. */ popupName = (windowOpen.arguments.length == 4) ? windowOpen.arguments[ 3 ] : "popup"; eval( 'if (' + popupName + ') { var ' + popupName + '; }' ); /* jetzt machen wir das fensterl auf */ popupStr = popupName + ' = window.open( "' + url + '", "' + popupName + '", "' + popupProperties + ',width=' + bridth + ',height=' + height + '" );'; //alert( popupStr ); //if (popup) alert( "popup gibts" ); if (eval( popupName )) { //alert( popupName + " gibts schon" ); if (eval( popupName + '.closed' )) { /* vb: fixme: ns6 scheint mir diesen fall nicht zu checken */ eval( popupStr ); } else { /* vb: fixme: hier heißt das fenster noch einfach immer popup */ /* aber ich glaub, er kommt hier nie an (s.u.) */ popup.location.href = url; popup.resizeTo( bridth, height ); popup.focus(); } } else { /* vb: fixme: durch das eval da oben scheint immer dieser fall zuzutreffen: */ eval( popupStr ); //eval( popupName + ".document.body.onload = alert( 'hi!' );" ); if (type == "auto") { autoX = screen.availWidth; autoY = screen.availHeight; eval( popupName + ".resizeTo( " + autoX + ", " + autoY + " );" ); while (eval( popupName + ".document.body.scrollWidth" ) == eval( popupName + ".document.body.clientWidth" )) { autoX -= 30; eval( popupName + ".resizeTo( " + autoX + ", " + autoY + " );" ); } autoX += 50; eval( popupName + ".resizeTo( " + autoX + ", " + autoY + " );" ); //alert( eval( popupName + ".document.body.scrollWidth" ) ); } /* vb: fixme: der netscape macht dann das innerfensterl so, ich will aber schon das outerfensterl */ /* außerdem gibts ne zugriffsverletzung, wenn du ne seite von wo anders drin hast */ //tempStr= popupName + ".resizeTo( " + bridth + ", " + height + " );"; //alert( tempStr ); //eval( tempStr ); eval( popupName + ".focus();" ); /* vb: fixme: wenn ein fenster mit dem gleichen namen & neuen größen gewünscht ist, */ /* dann sollte ich nicht nur reload & focus, sondern auch einen resize machen. */ } } /* windowOpener lädt die seite im fenster, das dich aufgemacht hat */ function windowOpener( url ) { if (window.opener) window.opener.location.href = getHrefFromA( url ); } /* windowPrint öffnet den dialog zum drucken, wenn möglich: */ function windowPrint() { if (window.print) { window.print(); } else { /* vb: fixme: wer weiß, ob das für alle browser stimmt. */ /* vielleicht sollten wir browser.ns, browser.os & browser.lang berücksichtigen */ alert( "Bitte klicken Sie mit der rechten Maustaste in das Fenster, um den Inhalt auszudrucken." ); } }