Ach....<P>
Sie sind nicht angemeldet. Bitte melden Sie sich an oder registrieren Sie sich.
devshare.de » Beiträge von Achim@PopNet
Ach....<P>
Es geht um die Transparenz in PNG24-Bildern. Kann mir jemand sagen, in welchen Browsern dies ohne PlugIn dargestellt werden kann, bzw. wie die Bilder angelegt werden müssen?<BR>In eigenen Test konnte ich nur im N6 / Mozilla eine korrekte Darstellung erzielen.<BR>Danks erna & pfuerti!
<A HREF="http://www.w3schools.com/browsers/browsers_stats.asp" TARGET=_blank>http://www.w3schools.com/browsers/browsers_stats.asp</A>
document.body.clientWidth
Du kopierst folgendes Script in Dein externes JSlib oder in den Headbereich jeder Seite, die Du damit steuern willst:<P>function BrowserCheck() /* hier checkst Du den Useragent */<BR> {<BR> var b = navigator.appName<BR> if (b=="Netscape") this.b = "ns"<BR> else if (b=="Microsoft Internet Explorer") this.b = "ie"<BR> else this.b = b<BR> <BR> var p = navigator.platform.toLowerCase();<BR> if (p=="win32") this.p = "win"<BR> else if (p=="macppc") this.p = "mac"<BR> else if (p=="x11") this.p = "x11"<BR> else this.p = p<BR> <BR> this.uA = navigator.userAgent.toLowerCase();<BR> this.v = parseInt(navigator.appVersion)<BR> this.ns = (this.b=="ns" && this.v>=4)<BR> this.ie = (this.b=="ie" && this.v>=4)<BR> this.ns4 = (this.b=="ns" && this.p=="win" && this.v==4)<BR> this.ns5 = (this.b=="ns" && this.p=="win" && this.v>=5)<BR> this.ie4 = (this.p=="win" && this.uA.indexOf('msie 4')>0)<BR> this.ie5 = (this.p=="win" && this.uA.indexOf('msie 5')>0)<BR> this.macns4 = (this.b=="ns" && this.p=="mac" && this.v==4)<BR> this.macns5 = (this.b=="ns" && this.p=="mac" && this.v>=5)<BR> this.macie45 = (this.p=="mac" && this.uA.indexOf('msie 4.5')>0)<BR> this.macie5 = (this.p=="mac" && this.uA.indexOf('msie 5')>0)<BR> this.other = ((this.p!="mac" && this.p!="win") || (this.b!="ns" && this.b!="ie") || this.uA.indexOf('aol')>0 || this.uA.indexOf('opera')>0)<BR> <BR> if (this.ie5) this.v = 5<BR> this.min = (this.ns || this.ie)<BR> }<BR> <BR> is = new BrowserCheck();<P>function CSSFileChooser() /* hier werden die StyleSheets entsprechend den UserAgents zugewiesen (Pfade u. Namen müssen noch angepasst werden....) */<BR> {<BR> BrowserCheck();<BR> {<BR> if (is.ie || is.macie5 || is.ns5 || is.macns5) document.write("<LINK REL='stylesheet' TYPE='text/css' HREF='ie_ns5.css'>");<BR> else if (is.ns4) document.write("<LINK REL='stylesheet' TYPE='text/css' HREF='ns4.css'>");<BR> else if (is.macns4) document.write("<LINK REL='stylesheet' TYPE='text/css' HREF='macns4.css'>");<BR> else if (is.other) document.write("<LINK REL='stylesheet' TYPE='text/css' HREF='other.css'>");<BR> }<BR> }<P>Falls Du mit einer externen JS-Datei arbeitest, brauchst Du nur noch die HEAD-Bereiche Deiner Seiten anpassen:<P><html><BR><head><BR> <title></title><BR> <script language="JavaScript" src="DeineJS-Datei.js"></script><BR> <script language="JavaScript">CSSFileChooser();</script><BR></head><P>Netscape 6, Linux, Opera und AOL sind auch berücksichtigt, aber ein bisserl basteln musst Du noch.....<p>[Dieser Beitrag wurde von Achim@PopNet am 12.02.2001 editiert.]
Mit dem Parameter [MAYSCRIPT] erlaubst Du dem Applet-Objekt den Zugriff auf die JS-Objekte der Seite. Falls Du das Applet selbst geschrieben hast, kannst Du damit die Variable initialisieren. Falls Du keinen Zugriff auf die Appletlogik hast, müsstest Du halt wissen, welche Bedingung es erfüllt, wenn es mit der Arbeit fertig ist; indem dann im Applet eine Variable einen neuen Wert erhält, den Du ausserhalb checken kannst.....
Nun - clientside JavaScript ermöglicht keinen Zugriff auf das Dateisystem. Entweder Du lässt das Script durch einen Webserver verarbeiten, oder Du löst das Problem mit einer - meist proprietären - Scriptsprache, die Dir einen Zugriff auf das Filesystem erlaubt: VB-Script, ActiveX, usw.
Wenn Du die Kontrolle über das I/O des Applet hast, kannst Du damit eine JS-Variable initialisieren. Mit der while(bedingung) - Schleife checkst Du solange den Wert der Variable, bis die Ausnahme eintritt, die Du mit dem Ende des Applets auslöst......<P>var end = 0<P>while(end != 0)<BR> {<BR> self.window.close();<BR> }<BR>
<BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>Original erstellt von Patzer:<BR><B>Sorry<P>also nochmal<P>meta http-equiv="expires" content="0"</B><HR></BLOCKQUOTE><P>Das klappt sicher, wenn eine direkte Verbindung zum Server besteht. Wenn aber ein Proxy zwischengeschaltet ist, brauchst Du zusätzlich die Angabe<P><meta http-equiv="pragma" content="no-cache"><P>damit dieser nicht die alte Seite zurückliefert :-) Im Zweifelsfall das Caching im Browser deaktivieren, um die Fehlerquelle ganz ausschliessen zu können....<P>
a) Wenn die Scripts, über die sich andere den Kopf zerbrechen, extern gelagert sind, nützt dir die rechte Maustaste eh nix, dann kannste sowieso nur durch den Cache surfen und das *.js suchen. Ebenso funzt es nicht auf'm Mac, weil der meistens nur eine Maustaste bietet.<P>b) Habe ich das Script schon gebraucht, um die DAU's vor sich selbst zu schützen....<BR>Beispiel: Ergebnisse einer Suchmaschine als Remote-Control für ein parent window, welches aus Framesets besteht. Die Links sind allerdings keine normalen Klicks, sondern Servlet requests..... - bei der Anwendung war die rechte Taste eher störend und sowieso nicht nötig.<P>c) Möchte ich mein Bildmaterial, das ich online stelle, nicht so schnell geklaut bekommen. Wenn schon einer meint, er kann sich nehmen, was er will, dann soll er schauen, wie er dran kommt.... - ein Dankeschön hat in den seltensten Fällen einer übrig!<p>[Dieser Beitrag wurde von Achim@PopNet am 09.02.2001 editiert.]
Vielleicht will er auch nur seine Bilder schützen.....<P> <script language="JavaScript"><P> function right(e)<BR> {<BR> if (navigator.appName == 'Netscape' && <BR> (e.which == 3 || e.which == 2))<BR> {<BR> location.replace(location.href);<BR> return false;<BR> }<BR> else if (navigator.appName == 'Microsoft Internet Explorer' && <BR> (event.button == 2 || event.button == 3))<BR> {<BR> location.replace(location.href);<BR> return false;<BR> }<BR> return true;<BR> }<P> document.onmousedown=right;<BR> document.onmouseup=right;<BR> if (document.layers) window.captureEvents(Event.MOUSEDOWN);<BR> if (document.layers) window.captureEvents(Event.MOUSEUP);<BR> window.onmousedown=right;<BR> window.onmouseup=right;<BR> <BR> </script><P>Auf Mozilla ist dieses Script noch nicht optimiert.<P>Gruß<BR>Achim<P>
Hi!<BR>Es könnte sein, dass Du die Objekthierarchie nicht richtig durchläufst. Probiere mal<P>self.opener.parent.FRAME.document.FORMULAR.FELD.value<P>oder<P>self.parent.opener.parent.FRAME.document.FORMULAR.FELD.value<BR>(falls das PopUp auch aus einem FrameSet besteht)<P>Achim
Entsprechend dem geplanten DOM des N6 wäre folgendes richtig:<P>document.getElementById(id).style.visibility = "visible";<P>Das funzt dann auch ab IE5, weil MS versprochen hat, sich auch an die W3C-Vorgabe zu halten.....<P>Das wäre ja schon fast ein digitaler Segen!<BR>Achim
Bei vielen Scripts & Hints, die hier angeboten werden und syntaktisch auf browserspezifische Eigenheiten eingehen, werden diese per "document.layers" und "document.all" abgefragt. Das geht über kurz oder lang ins Auge, da für zukünftige Browserversionen, die sich stärker an die W3C-Specification des DOM halten, dann der ganze Kram umgeschrieben, bzw. angepasst werden muss. Da werden dann wohl ein paar Leute 'ne kleine Krise kriegen.....<BR>Der Zugriff auf Objekte mit ID lässt sich auf N6 und IE5 schon problemlos mit "document.getElementById" beeinflussen. Hier wäre eine Erweiterung der Browser-Abfrage dringend angeraten.<P>Als echt guten Browser-Check verwende ich den von Dan Steinman <A HREF="http://www.dansteinman.com" TARGET=_blank>http://www.dansteinman.com</A> <P>hier das Script:<BR>[color="#CC0000"]<BR>function BrowserCheck()<BR> {<BR> var b = navigator.appName<BR> if (b=="Netscape") this.b = "ns"<BR> else if (b=="Microsoft Internet Explorer") this.b = "ie"<BR> else this.b = b<BR> <BR> this.v = parseInt(navigator.appVersion)<BR> this.ns = (this.b=="ns" && this.v>=4)<BR> this.ns4 = (this.b=="ns" && this.v==4)<BR> this.ns5 = (this.b=="ns" && this.v>=5)<BR> this.ie = (this.b=="ie" && this.v>=4)<BR> this.ie4 = (navigator.userAgent.indexOf('MSIE 4')>0)<BR> this.ie5 = (navigator.userAgent.indexOf('MSIE 5')>0)<BR> if (this.ie5) this.v = 5<BR> this.min = (this.ns| |this.ie)<BR> }<BR> is = new BrowserCheck()<BR></font><P>Die folgende Funktion enthält als Argument den ID-Namen und liefert eine Referenz auf das Objekt zurück:<P>[color="#CC0000"]<BR>function get_element(name)<BR> {<BR> if (is.ie | | is.ns)<BR> {<BR> return document.getElementById(name);<BR> }<BR> else if (is.ns4)<BR> {<BR> return eval("document." + name);<BR> }<BR> else if (is.ie4)<BR> {<BR> return eval("document.all." + name);<BR> }<BR> }<P></font><P>Diese Methode hat etwas mehr Zukunft....<P>Gruß von der Isar<BR>Achim<BR>
FrameName.location.href=URL
Lege jedes Bild in einen eigenen Layer und blende diese per Event ein/aus. Siehe Beitrag von Olli vom 15.09./14:45, da habe ich das erklärt....<BR>Aber ich glaub' das funzt auch, in dem Du einfach die Größenangaben weglässt. Vielleicht springt Dein Design dann ein bisserl, aber das bekommst Du schon in den Griff ;-))<P>Gruß von der Isar<BR>Achim
Äääähm.....<BR>1.) Schraibfeeler - muss heissen innerWidth<BR>2.) Funzt es nur mit N4, da IE keine JavaScript-Entities kennt.<P>Jaja, macht halt jeder seinen eigenen Kram..... ;-))
Mist! Hier nochmal das Script......<P><img src="DeinBild" width="&{Math.ceil(self.innerWith*0.25)};" align=".....><P>Auf der Basis kannst Du ja noch etwas mit EventHandler experimentieren.....<P>Gruß von der Isar<BR>Achim
Damit passt sich Dein Bild automatisch der Fenstergröße an, wirkt aber u.U. etwas unscharf.<P><img src="DeinBild.gif" width="&{Math.ceil(self.innerWidth*0.25)};" align=".....><P>Auf der Basis kannst Du ja noch ein bisserl mit EventHandlern, usw. experimentieren....<P>Go create ;-)) & Gruß von der Isar<BR>Achim<p>[Dieser Beitrag wurde von Achim@PopNet am 28.09.2000 editiert.]
Mit dieser Modifikation hast Du keinen Alert mehr, sondern die Seite wird einfach neu geladen <BR> <script language="JavaScript"><BR> <!--<BR> function right(e)<BR> {<BR> if (navigator.appName == 'Netscape' && <BR> (e.which == 3 | | e.which == 2))<BR> {<BR> location.replace(location.href);<BR> return false;<BR> }<BR> else if (navigator.appName == 'Microsoft Internet Explorer' && <BR> (event.button == 2 | | event.button == 3))<BR> {<BR> location.replace(location.href);<BR> return false;<BR> }<BR> return true;<BR> }<P> document.onmousedown=right;<BR> document.onmouseup=right;<BR> if (document.layers) window.captureEvents(Event.MOUSEDOWN);<BR> if (document.layers) window.captureEvents(Event.MOUSEUP);<BR> window.onmousedown=right;<BR> window.onmouseup=right;<BR> //--><BR> </script><P>im BODY-tag fügst Du dann nur noch onload="right();" ein.....<P>Beachte aber dass der Spass auf'm Mac nicht funzt!<P>Gruß von der Isar<BR>Achim
Von wo aus sprichst Du den opener an? In JavaScript wird jeder Frame als window-Objekt betrachtet. Möglicherweise funktioniert self.opener oder self.parent.opener, auf alle Fälle würde ich über die Hierarchie gehen.....
Du kannst die Tabellenzelle in der die Inhalte erscheinen sollen, blind formatieren - d.h. einfach nur auf's richtige Format bringen. Außerhalb der Tabelle bringst Du die Elemente, die ausgetauscht werden sollen in richtig positionierten DIV-Containern unter, die auf "hidden" gesetzt sind. Per JavaScript schaltest Du dann nur noch die einzelnen Container an oder aus.<BR>Das ganze sieht dann so aus:<BR><DIV id="C1" style="position: absolute; visibility: visible; height: 000px; width: 000px; left: 00px; top: 00px;">Hier Deine Elemente einfügen<DIV><P><DIV id="C2" style="position: absolute; visibility: hidden; height: 000px; width: 000px; left: 00px; top: 00px;">Hier Deine Elemente einfügen<DIV><P>Das Script für den Layerwechsel sieht so aus:<BR><Script Language = JavaScript><P>// Browser detection<BR>function BrowserCheck()<BR> {<BR> var b = navigator.appName<BR> if (b=="Netscape") this.b = "ns"<BR> else if (b=="Microsoft Internet Explorer") this.b = "ie"<BR> else this.b = b<BR> <BR> this.v = parseInt(navigator.appVersion)<BR> this.ns = (this.b=="ns" && this.v>=4)<BR> this.ns4 = (this.b=="ns" && this.v==4)<BR> this.ns5 = (this.b=="ns" && this.v==5)<BR> this.ie = (this.b=="ie" && this.v>=4)<BR> this.ie4 = (navigator.userAgent.indexOf('MSIE 4')>0)<BR> this.ie5 = (navigator.userAgent.indexOf('MSIE 5')>0)<BR> if (this.ie5) this.v = 5<BR> this.min = (this.ns| |this.ie)<BR> }<BR> is = new BrowserCheck()<P>// Show and hide layers<BR>function show(id)<BR> {<BR> if (is.ns4)<BR> {<BR> document.layers[id].visibility = "show";<BR> }<BR> else if (is.ie4)<BR> {<BR> document.all[id].style.visibility = "visible";<BR> }<BR> else if (is.ie5 | | is.ns5)<BR> {<BR> document.getElementById(id).style.visibility = "visible";<BR> }<BR> }<P>function hide(id)<BR> {<BR> if (is.ns4)<BR> {<BR> document.layers[id].visibility = "hide";<BR> }<BR> else if (is.ie4)<BR> {<BR> document.all[id].style.visibility = "hidden";<BR> }<BR> else if (is.ie5 | | is.ns5)<BR> {<BR> document.getElementById(id).style.visibility = "hidden";<BR> }<BR> }<P>// Change layers<BR>var Ci = 1;<BR>var divcon = "C";<P>function showLayerNr(layer_nr){<BR> hide(eval('"' + divcon + Ci +'"'));<BR> show(eval('"' + divcon + layer_nr +'"'));<BR> Ci = layer_nr; <BR> }<BR><script><P>BTW: Die Browser-Detection stammt von Dan Steinman - THX a lot! <A HREF="http://www.dansteinman.com/" TARGET=_blank>http://www.dansteinman.com/</A> <P>Jetzt brauchst Du nur noch folgenden Funktionsaufruf in Deinen Anchor legen:<P><a href="javascript:showLayerNr(2);"> - die Zahl in der Klammer ruft den Layer auf, den Du sichtbar machen möchtest.<P>Viel Spass damit!
Tztztzt....<BR>also nochmal:<P><script language="JavaScript"><BR>document.write(document.referrer)<BR></script>
Wo das Script steht ist nicht relevant, solange richtig darauf referenziert wird. Gib dem Frame (und am besten den anderen auch) einen eindeutigen Namen, dann kannst Du ihn über die Hierarchie aus jeder Instanz heraus ansprechen. Dazu brauchst Du noch nicht mal JavaScript, setze einfach den gewünschten target im anchor!<BR>
Neee, wohl nicht. Das Problem hab ich auch noch nicht gelöst....<BR>Wenn Du nicht möchtest, dass das Design im child window zerissen wird, pack es in ein Frameset. Dann entsteht wenigstens nur ein phatter Rand um den Content ;-)
devshare.de » Beiträge von Achim@PopNet
Powered by PunBB, unterstützt von Informer Technologies, Inc.
Currently installed 7 official extensions. Copyright © 2003–2009 PunBB.