hintergrundfarbe für frame cia javascript in einem link
charon
- javascript
guten tag, werte profis :)
mein topic hört sich sehr kompliziert an, weil ich es einfach nicht besser zu beschreiben weiss.
ich will folgendes:
ich öffne mittels eines links ein bild in einem frame, will aber, dass in diesem frame dann eine hintergrundfarbe dargestellt wird.
da ich dies für eine homepage sehr oft mache und es immer um den gleichen frame, die gleiche farbe etc. geht, möchte ich es vermeiden für jedes bild eine separate html seite zu machen.
ein freund von mir hat sowas ähnliches als beispiel für mich gefunden:
http://home.media-n.de/12410/garage.htm auf dieser seite kann man auf (nicht vorhandene) grafiken clicken, es öffnet sich ein popup und in diesem popup gibt es hellblauen hintergrund.
der code dafür sieht so aus:
<script language="JavaScript">
function popup1(w,h,site) {
x=screen.availWidth/2-w/2;
y=screen.availHeight/2-h/2;
var popupWindow=window.open('','','width='+w+',height='+h+',left='+x+',top='+y+',screenX='+x+',screenY='+y);
popupWindow.document.write(site);
}
</script>
====
damit generiert er das popup
<td><div align="center"><strong><a href="javascript:popup1(650,400,'
<html><head><title>Mercedes Benz C-Klasse</title></head><body bgcolor=#BFEFFF scroll=no><center><img src=../images/benz.jpg></center></body></html>')"><img src=../images/benzklein.jpg border="0"></a></strong></div></td>
</tr>
<tr class="Stil10">
und so sehen seine links aus.
====
wie man sieht hat er im link die eigenschaften (unter anderem die farbe) des popups angegeben.
in etwa das gleiche brauche ich, nur, dass ich kein popup sondern ein frame habe...
lässt sich das umsetzen? ich hab leider keine ahnung von javascript und kann nur vorhandene scripte modifizieren..hier bin ich aber mit meinem latein am ende...er auch ^^
Hi,
ich öffne mittels eines links ein bild in einem frame, will aber, dass in diesem frame dann eine hintergrundfarbe dargestellt wird.
JavaScript hat keinen Zugriff auf die Konfiguration des Browsers.
Cheatah
Hi,
ich öffne mittels eines links ein bild in einem frame, will aber, dass in diesem frame dann eine hintergrundfarbe dargestellt wird.
JavaScript hat keinen Zugriff auf die Konfiguration des Browsers.
Cheatah
===
weiter unten hättest du nen lösungsanstz gefunden. da is ein funktionierendes script für ein popup...nur will ich kein popup sondern das öffnen in nem frame..respektive target...
hi
wie wärs wenn du via DOM einfach auf die hintergrundfarbe des im Frame enthaltenen Dokumentes einfluss nimmst?
Zutaten:
einen frame mit namen
ein dokument mit einem body dem via css eine hintergrundfarbe zugewiesen wird
ein bisserl javascript um über den parent und den benannten frame auf das dokument und via getElementsByTagName auf den body zugreifen zu können.
ein bisserl style
und die passende styleeigenschaft nebst passenden wert, welchen du der funktion natürlich mitgeben kannst.
so long
Ole
(8-)>
@ole
das hört sich alles sehr interessant an...aber so richti gverstanden hab ichs trotz befolgen deiner links nicht...
es scheitert sicherlich daran, dass ich nicht direkt mit javascript programmiern kann :-s
@ole
das hört sich alles sehr interessant an...aber so richti gverstanden hab ichs trotz befolgen deiner links nicht...
es scheitert sicherlich daran, dass ich nicht direkt mit javascript programmiern kann :-s
Hey!
Am exakt gleichen Problem sitz ich auch gerade... Bin auch nicht so vertraut mit javascript! Ich will in einem frameset mit drei Frames beim Klicken auf einen Link im Menü, dass die folgende, im Hauptfenster aufgerufene Seite eine bestimmte Hintergrundfarbe hat. Bis jetzt bin ich soweit:
<script type="text/javascript">
<!--
function Farbe(R, G, B) {
this.R = R;
this.G = G;
this.B = B;
this.hex="#";
}
function HintergrundWechseln() {
var Hintergrund = new Farbe("00","00","00");
document.bgColor = Hintergrund.hex + Hintergrund.R + Hintergrund.G + Hintergrund.B;
}
//-->
</script>
der Link sieht so aus:
<a href="http://www.m-j-i.net/tinc?key=eeT3vXyd&start=-1&reverse=1" target="haupt" onClick="parent.haupt.Farbe();">
wobei das Zielfenster eben "haupt" heißt...
Wo ist der Fehler???
Gruß, Markus
Tach
wie markus schon richtig erkannt hat wird der frame über "parent.framename" angesprochen.
den (ersten) body des enthaltenen documents spricht man mit "document.getElementsByTagName("body")[0]" an
Auf eine style attribut nimmt man zugriff mittels
style.attribut = "wert" und kann so den wert ändern.
kommen wir also im fazit zu
parent.framename.document.getElementsByTagName("body")[0].style.attribut= "wert";
so long
Ole
(8-)>
parent.framename.document.getElementsByTagName("body")[0].style.attribut= "wert";
konkret also:
<a href="[linktarget]" onClick="parent.haupt.document.getElementsByTagName("body")[1].style.attribut="bgcolor:#000000";">
??
Oder kommt das nicht ins <a href>??? Und brauch in dann die Funktion noch?
hi
konkret also:
<a href="[linktarget]" onClick="parent.haupt.document.getElementsByTagName("body")[1].style.attribut="bgcolor:#000000";">
??
Nein
parent.framename.document.getElementsByTagName("body")(0).style.attribut= "wert";
Die Klammern um die 0 müssen eckig sein, hab ich im link allerdings nicht kodiert bekommen *grummel*...also [0]
Oder kommt das nicht ins <a href>??? Und brauch in dann die Funktion noch?
nein, onclick ist schon richtig. evtl. noch ein return false.
schöner wäre natürlich das ganze in eine funktion zu packen und dann nur die funktion aufrufen zu müssen. macht den quelltext übersichtlicher.
so long
ole
(8-)>
Ok, zumindest reagiert das Fenster für einen Bruchteil einer Sekunde, anschließend "springt" die Hintergrundfarbe allerdings wieder auf den Wert, der in der Datei definiert ist (also den falschen Wert) zurück.
<script type="text/javascript">
<!--
function Farbe() {
parent.haupt.document.getElementsByTagName("body")[0].style.backgroundColor="#000000"; return false;
}
//-->
</script>
</head>
und im onClick den Funktionsaufruf.
Wie kann ich den gewünschten Farbzustand dauerhaft erzwingen?
Btw, bis jetzt schon mal VIELEN DANK!!!!! :-)
Markus
Hi
bei mir bleibt die farbe permanent, sowohl im IE als auch im Firefox.
wie sieht der relevante quelltext deines zieldokuments aus?
so long
Ole
(8-)>
bei mir bleibt die farbe permanent, sowohl im IE als auch im Firefox.
krass, bei mir nicht, weder im mie, noch im netscape!
wie sieht der relevante quelltext deines zieldokuments aus?
----------------------------------------------------------------------
<style type="text/css">
body{
margin:15px 10px 20px
}
h2{
text-decoration:underline; font-size:16px
}
h3{
font-size:14px
}
input{
font-size:11px
}
.gross{
font-size:16px
}
.klein{
font-size:10px
}
.mittel{
font-size:14px
}
.rechts{
text-align:right
}
.riesig{
font-size:20px
}
.noline{
text-decoration:none
}
body,table,tr,td,li,a{
color : #000000;
font-family: 'Times New Roman', Times, serif;;
font-size: 12px
}
body, table, td, .bgnorm {
background-color : #3265A3
}
.invert{
background-color : #000000;
color : #3265A3
}
input,textarea{
border : 0px none #3265A3;
color : #383838;
scrollbar-base-color : #3265A3;
scrollbar-shadow-color : #383838;
scrollbar-darkshadow-color : #3265A3;
scrollbar-track-color : #3265A3;
scrollbar-3dlight-color : #3265A3;
scrollbar-face-color : #3265A3;
scrollbar-highlight-color : #3265A3;
scrollbar-arrow-color : #383838
}
.high,input,textarea{
background-color : #D8D8D8
}
.warn{
color:#000000;
font-weight:bold;
background-color:#FFFFFF
}
.admin{
color:#FFFFFF;
}
.dborder{
border : 1px dotted #383838;
padding : 2px 2px 2px 2px;
}
.button{
border : 1px solid #383838;
}
.message{
border-bottom : 1px solid #ECECEC;
border-left : 1px solid #ECECEC;
line-height : 18px;
padding : 3px 3px 3px 3px
}
</style></head>
----------------------------------------------------------------------
ich müsste, glaub ich, auf .bgnorm zugreifen...
hi
ich müsste, glaub ich, auf .bgnorm zugreifen...
nein, es reicht wenn du auf das body-tag zugreifst, deine idee aus dem anderen posting kann nicht funktionieren.
hast du irgendwo ein online-beispiel? So kann ich jetzt keine fehler finden.
so long
ole
(8-)>
hast du irgendwo ein online-beispiel? So kann ich jetzt keine fehler finden.
die seite ist www.m-j-i.net .
es geht da um das Gästebuch, welches direkt vom Hostinganbieter (1und1) gestellt wird und der keine eigene cgi-Daten zulässt! Somit bin ich auf ihn angewiesen, nur passt das GB vom Layout her überhaupt nicht in meine website rein...
hi
es geht da um das Gästebuch, welches direkt vom Hostinganbieter (1und1) gestellt wird und der keine eigene cgi-Daten zulässt! Somit bin ich auf ihn angewiesen, nur passt das GB vom Layout her überhaupt nicht in meine website rein...
wie wahsaga schon schrieb: das kann nicht klappen.
da wirst du auch nixhts dran ändern können, außer dir ein gästebuch zu besorgen das du besser anpaasen kannst.
so long
ole
(8-)>
Die lassen nichts anderes zu außer ihr eigenes...
Alternativer Gedanke: Outsourcing, also das GB auf einem anderen Server bereitstellen und dann einen Link dahin. => Weiß jemand einen Anbieter, möglichst kostenlos, der cgi-Dateien zulässt? :-)
funpic.de hab ich schon probiert, aber die erlauben nur php, jedoch kein cgi...
Bin für jeden Hinweis dankbar!!!!!!!!!!!
@ ole und wahsaga: Euch beiden nochmal VIELEN DANK für die Zeit und Mühe!!! Weiß ich echt zu schätzen!!! :-)
Gruß, Markus
hi
Bin für jeden Hinweis dankbar!!!!!!!!!!!
kostenlose GB gibts wie sand am mehr, einfach mal bei google schaun. ich hab z.B. recht gute erfahrungen mit http://www.webmart.de gemacht. Mitlerweile schreib ich mir sowas aber selber :).
so long
Ole
(8-)>
kostenlose GB gibts wie sand am mehr, einfach mal bei google schaun.
Nein, kostenlose GBs gibts überall, das weiß ich! Kostenloser webspace mit cgi-Erlaubnis ist gefragt! ;-)
hi
du kennst http://www.webhostlist.de/?
so long
Ole
(8-)>
nein, kannte ich noch nicht! ist super!!!
danke!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
war ja recht aufschlussreich eure diskussion mitzuverfolgen und ich hatte schon die hoffnung es würde doch irgendwie gehn....
aber hab ichs jetzt richtig verstanden, dass ich die hintergrundfarbe nur für denbruchteil der sekunde, die onclick ausmacht ändern kann, danach aber wieder eine andere geladen wird?
hi
aber hab ichs jetzt richtig verstanden, dass ich die hintergrundfarbe nur für denbruchteil der sekunde, die onclick ausmacht ändern kann, danach aber wieder eine andere geladen wird?
nein, du kannst die hintergrundfarbe des dokumentes schon permanent ändern, wenn du allerdings ein neues dokument lädst bringt dir das natürlich ncihts, weil das neue dokument das alte ersetzt.
so long
ole
(8-)>
ah dann muss ich das nachher alles mal in ruhe ausprobiern...vielen danke insbesondere dir, ole, und natürlich auch wahsaga und magges, der zum glück die diskussion für mich fortgeführt hat :D
hi,
Ok, zumindest reagiert das Fenster für einen Bruchteil einer Sekunde, anschließend "springt" die Hintergrundfarbe allerdings wieder auf den Wert, der in der Datei definiert ist (also den falschen Wert) zurück.
natürlich, was hast du denn erwartet?
wenn der link geklickt wird, wird zunächst onClick ausgewertet, also die hintergrundfarbe des _derzeit_ im frame angezeigten dokumentes geändert.
anschließend lädst du ein vollkommen neues dokument in den frame, welches wieder seine eigene definition der hintergrundfarbe mitbringt. da dieses das vorherige dokument ersetzt, ist auch dessen hintergrundfarbe weg, absolut logisch.
gruß,
wahsaga
P.S.: Die Attribute sind in der Datei (die geändert werden soll) als css definiert.
der allg. Hintergrund ist als .bgnorm festgelegt. Kann ich auch auf solche Elemente zugreifen?
Gedankenansatz (funktioniert aber nicht!):
parent.haupt.document.getElementsByTagName("body.bgnorm")[0].style.backgroundColor="#000000";
Oder ist da Ende der Fahnenstange?
Markus
<a href="1a.jpg" target="start" onClick="parent.framename.document.getElementsByTagName("body")[0].style.attribut= "bgcolor:#000000";"><img src="1b.jpg"></a>
so sieht mein link aus (hoffentlich merkt dieses forum, dass es jetzt nicht grafisch umsetzen soll:P) funktioniert leider nicht, mozilla javakonsole zeigt auch syntaxfehler an. hilfe? :-s
hi,
onClick="parent.framename.document.getElementsByTagName("body")[0].style.attribut= "bgcolor:#000000";"><img src="1b.jpg"></a>
so sieht mein link aus (hoffentlich merkt dieses forum, dass es jetzt nicht grafisch umsetzen soll:P) funktioniert leider nicht, mozilla javakonsole zeigt auch syntaxfehler an.
das literal, welches du onClick zuweist, beginnt mit dem ersten anführungszeichen, und endet mit dem zweiten.
danach kommt dummerweise noch
body")[0].style.attribut= "bgcolor:#000000";"
und damit kann der browser schwerlich etwas anfangen.
du möchtest dich also mal mit http://de.selfhtml.org/javascript/sprache/notationen.htm#zeichenketten beschäftigen.
gruß,
wahsaga
hi,
Wo ist der Fehler???
wo ist deine fehler_beschreibung_?
gruß,
wahsaga
wo ist deine fehler_beschreibung_?
Fehlerbeschreibung:
------------------------
Obwohl ich dieses Javascript-Element eingebaut habe, funktioniert nichts, quasi als ob es nicht vorhanden wäre!
------------------------
Ok so?
hi
Obwohl ich dieses Javascript-Element eingebaut habe, funktioniert nichts, quasi als ob es nicht vorhanden wäre!
Ok so?
Nein.
Wird ein JS-Fehler ausgegeben? Wenn ja welcher?
Was sagt zum beispiel die JavaScript konsole von Mozilla?
so long
Ole
(8-)>
Wird ein JS-Fehler ausgegeben?
Was sagt zum beispiel die JavaScript konsole von Mozilla?
Es wird aber weder was ausgegeben, noch gibt es irgendeine Fehlermeldung, somit wusste ich echt nicht, was ich posten sollte...
It simply doesn't work... ;-/
Markus