Supportnet / Forum / Skripte(PHP,ASP,Perl...)
JS: in text dynamisch schreiben & PopUp
Frage
Hallo:
1.
Ich hab mal mit document.write versucht, in die Seite zu schreiben, ohne ne neue Seite zu laden, hat aber nicht geklappt. Wie kann ich in die Seite was schreiben, ohen ne neu zu laden? Und vor allem: Wie kann ich bestimmen, WO das hinkommt?
2.
Diese kleinen PopUps beim Maus-überfahren, wie krieg ich die hin?
mfg
TByte
Antwort 1 von Dr.Ma-Busen
Moin!
1) Über das Document Object Model kannst du soetwas machen:
http://de.selfhtml.org/dhtml/modelle/dom.htm
2) Mit ein versteckten div (CSS visibility).
Ermittelst die Mausposition und verschiebst das div an die passende stelle und blendest es ein.
1) Über das Document Object Model kannst du soetwas machen:
http://de.selfhtml.org/dhtml/modelle/dom.htm
2) Mit ein versteckten div (CSS visibility).
Ermittelst die Mausposition und verschiebst das div an die passende stelle und blendest es ein.
Antwort 2 von TByte
Danke
1. ist etwas kompliziert, kann mir dasjemand erklärn? Also ich hab verstanden dass man das mit Span regeln muss.
2. Dasselbe wie oben
mfg
TByte
1. ist etwas kompliziert, kann mir dasjemand erklärn? Also ich hab verstanden dass man das mit Span regeln muss.
2. Dasselbe wie oben
mfg
TByte
Antwort 3 von Dr.Ma-Busen
Vielleicht ist das hier ja verständlicher:
http://de.wikipedia.org/wiki/Document_Object_Model
Meintest du so ein popup? Oder etwas anderes?
http://de.wikipedia.org/wiki/Document_Object_Model
Meintest du so ein popup? Oder etwas anderes?
<html>
<body>
<script type="text/javascript">
function show(e){
if(!e){ e = window.event;}
var o = document.getElementById("pop");
o.style.top = e.clientY+2;
o.style.left = e.clientX+2;
o.style.visibility = "visible";
}
function hide(){
document.getElementById("pop").style.visibility = "hidden";
}
</script>
<div id="pop" style="position:absolute;background-color:white; visibility:hidden;border:2px solid black">
PopUp
</div>
Text Bla blubbber<br>Text Bla blubbber<br>Text Bla blubbber<br>
Text Bla <a href="#" onmouseover="show()" onmouseout="hide()">blubbber</a><br>
Text Bla blubbber<br>Text Bla blubbber<br>Text Bla blubbber<br>
</body>
</html>Antwort 4 von TByte
1. Nee, also verstanden hab ichs noch nicht.
2.Also haste vllt. sowas [ i ] geschireben?
mfg
TByte
2.Also haste vllt. sowas [ i ] geschireben?
mfg
TByte
Antwort 5 von Dr.Ma-Busen
1) Du weist ja jetzt das das ganze DOM bzw. Document Object Modell heißt. Dann nimm die Suchmaschiene deines vertrauens.. villeicht findest du ja eine Seite auf der es, für dich, verständlich beschrieben ist
2) nein ich habe kein [ i ] benutzt
nööö..... vielleicht das nächtes mal :)
2) nein ich habe kein [ i ] benutzt
Zitat:
beachte doch mal bitte die Beitragsformatierung
beachte doch mal bitte die Beitragsformatierung
nööö..... vielleicht das nächtes mal :)
Antwort 6 von TByte
1. ich werds versuchn
2. klappt aba nicht
mfg
TByte
2. klappt aba nicht
mfg
TByte
Antwort 7 von Dr.Ma-Busen
aso...
ändere mal onmouseover="show()" onmouseout="hide()" in
onmouseover="show(event)" onmouseout="hide(event)"
Vergessen das event mit zu übergeben... Opera und Konqueror meckern da nicht rum wenn es fehlt.
ändere mal onmouseover="show()" onmouseout="hide()" in
onmouseover="show(event)" onmouseout="hide(event)"
Vergessen das event mit zu übergeben... Opera und Konqueror meckern da nicht rum wenn es fehlt.
Antwort 8 von katy
Hallo TByte,
zu deinem PopUp-Problem hast du ja schon Infos, ansonsten findest du unter den Stichworten "infofenster javascript" genug Vorlagen.
Das andere Problem:
Wenn du in eine fertig geladene Seite mit Document.write zu schreiben versuchst verlässt der Browser die Seite und zeigt nur noch das an, was du per write geschrieben hast. In (richtigem) XHTML funktioniert write auch nicht mehr.
Du wurdest schon aufs DOM hingewiesen und die Methoden des node-Obkjekts.
Für Anfänger gibt es noch die etwas einfachere Microsoft-Methode innerHTML, die trotzdem von allen Browsern unterstützt wird, von JavaScript-Profis aber nicht gern gesehen wird.
Beispiel:
Im JavaScript-Bereich:
im body:
katy
zu deinem PopUp-Problem hast du ja schon Infos, ansonsten findest du unter den Stichworten "infofenster javascript" genug Vorlagen.
Das andere Problem:
Wenn du in eine fertig geladene Seite mit Document.write zu schreiben versuchst verlässt der Browser die Seite und zeigt nur noch das an, was du per write geschrieben hast. In (richtigem) XHTML funktioniert write auch nicht mehr.
Du wurdest schon aufs DOM hingewiesen und die Methoden des node-Obkjekts.
Für Anfänger gibt es noch die etwas einfachere Microsoft-Methode innerHTML, die trotzdem von allen Browsern unterstützt wird, von JavaScript-Profis aber nicht gern gesehen wird.
Beispiel:
Im JavaScript-Bereich:
function schreibe(was,wo) {
document.getElementById(wo).innerHTML=was;
}im body:
<div id="hier">alter Text, zum Ändern <span onclick="schreibe('hier','neuer <em>Text</em>')">hier klicken</span></div>katy
Antwort 9 von katy
sorry, kleiner Fehler: die Reihenfolge der Argumente der Funktion schreibe() ist vertauscht.
Antwort 10 von TByte
Hallo,
also danke erstmal an beide.
Also innerhtml nimmt den ganzen Text weg und schreibt was neues hin. Ich dachte mehr daran, das so zu lassen und Text anzuhängen, bzw. mitten zwischen Sätzen. Das muss man ja mit DOM machen. Aber ich hab nur so viel verstanden: Mit Span oder Div irgendwas mit getelementbytagid, aberwie genau kapier ich noch nicht.
mfg
TByte
also danke erstmal an beide.
Also innerhtml nimmt den ganzen Text weg und schreibt was neues hin. Ich dachte mehr daran, das so zu lassen und Text anzuhängen, bzw. mitten zwischen Sätzen. Das muss man ja mit DOM machen. Aber ich hab nur so viel verstanden: Mit Span oder Div irgendwas mit getelementbytagid, aberwie genau kapier ich noch nicht.
mfg
TByte
Antwort 11 von katy
Hallo TByte,
wenn du nur was anhängen willst hast du die einfache Möglichkeit des += mit innerHTML:
Oder du liest mit
den bisherigen Inhalt aus, arbeitest ein bisschen mittels Stringmanipulation daran
und schreibst den neuen String zurück
Natürlich funktioniert das alles, sowohl DOM-Methoden als auch innerHTML, mit anderen Elementen als span und div! Das wäre ja furchtbar, wenn man/frau dazu auf diese Krücken angewiesen wäre.
Übrigens kannst du zu all diesen Stichworten bei SelfHTML nachlesen!
katy
wenn du nur was anhängen willst hast du die einfache Möglichkeit des += mit innerHTML:
function anhaengen(was,wo) {
document.getElementById(wo).innerHTML+=was;
}Oder du liest mit
var alterInhalt = document.getElementById(wo).innerHTML;den bisherigen Inhalt aus, arbeitest ein bisschen mittels Stringmanipulation daran
var neuerInhalt = ... und schreibst den neuen String zurück
document.getElementById(wo).innerHTML = neuerInhalt;Natürlich funktioniert das alles, sowohl DOM-Methoden als auch innerHTML, mit anderen Elementen als span und div! Das wäre ja furchtbar, wenn man/frau dazu auf diese Krücken angewiesen wäre.
Übrigens kannst du zu all diesen Stichworten bei SelfHTML nachlesen!
katy
Antwort 12 von TByte
Ok, danke.
Und wie klappt jetzt nochmal die DOM-methode?
Und wie klappt jetzt nochmal die DOM-methode?
Antwort 13 von TByte
sorry, noch ne frage:
gibs sowas wie GetElementByTagClass?
mfg
TByte
gibs sowas wie GetElementByTagClass?
mfg
TByte
Antwort 14 von katy
Hallo TByte,
die DOM-Methode ergibt sich aus den Objekten document und node in JavaScript. Lies dazu bei SelfHTML nach, da gibts auch genug Beispiele.
Alle getElement(s)ByIrgendwas-Methoden findest du zB. beim document-Objekt.
katy
die DOM-Methode ergibt sich aus den Objekten document und node in JavaScript. Lies dazu bei SelfHTML nach, da gibts auch genug Beispiele.
Alle getElement(s)ByIrgendwas-Methoden findest du zB. beim document-Objekt.
katy
Antwort 15 von TByte
Hallo danke.
Also,
ich möchte ein Element verstecken, oder besser überschreiben, deshalb der ganze Aufwand. Jetzt hab ich aber eine Seite, die ich nicht ändern kann. Da gibs ein Element, dass ich verstekcen will, was aber nur einer Klasse angehört. Wie bewerkstellige ich das?
mfg
TByte
Also,
ich möchte ein Element verstecken, oder besser überschreiben, deshalb der ganze Aufwand. Jetzt hab ich aber eine Seite, die ich nicht ändern kann. Da gibs ein Element, dass ich verstekcen will, was aber nur einer Klasse angehört. Wie bewerkstellige ich das?
mfg
TByte
Antwort 16 von TByte
Also Getelementbyclass gibs nicht. Kann ich das irgendwie umschreiben?
mfg
TByte
mfg
TByte
Antwort 17 von katy
Hallo TByte,
bitte erkläre genauer, was du tun willst. Um störende Klassen in Fremdseiten im eigenen Browser unsichtbar zu machen gibt's User-Stylesheets.
katy
bitte erkläre genauer, was du tun willst. Um störende Klassen in Fremdseiten im eigenen Browser unsichtbar zu machen gibt's User-Stylesheets.
katy
Antwort 18 von TByte
Ich wollt n Greasemonkey-Script schreiben, welches eine (lästige) Tabellenzeile ausblendet. Diese hat aber nur Klasse, keine ID!
mfg
TByte
mfg
TByte
Antwort 19 von katy
wenn es sich wirklich nur um deinen eigenen Browser handelt ist ein User-Style mit dem Inhalt
ausreichend.
Es gibt übrigens durchaus JavaScript-Librarys, die ein getElementsByClassName liefern, du musst nur danach googlen.
katy
.die_Klasse_um_die_es_sich_dreht {
display:none;
}ausreichend.
Es gibt übrigens durchaus JavaScript-Librarys, die ein getElementsByClassName liefern, du musst nur danach googlen.
katy
Antwort 20 von TByte
Also ich hab nur nach GetElementByClass gegooglet.
Wird die Library denn auch von allen Browsern unterstützt, die Greasemonkey haben?
mfg
TByte
Wird die Library denn auch von allen Browsern unterstützt, die Greasemonkey haben?
mfg
TByte
Antwort 21 von katy
solche "Librarys" sind nichts weiter als eine Sammlung von Funktionen, so als ob du selbst (das Wissen vorausgesetzt) dir das schreiben würdest. Ich weiß nicht was du ergoogelt hast (es gibt einen ganzen Haufen solche Librarys mit get...Class...), wenn das Erstellungsdatum zu weit her ist nimm was anderes.
Antwort 22 von TByte
Hi
also:
document.write="<p align="center">"
geht ja wohl kaum
document.write="<p align='center'>"
wird nicht akzeptiert. Was denn wie denn?
mfg
TByte
also:
document.write="<p align="center">"
geht ja wohl kaum
document.write="<p align='center'>"
wird nicht akzeptiert. Was denn wie denn?
mfg
TByte
Antwort 23 von Supermax
document.write() ist eine FUNKTION, um etwas in dein HTML-Dokument zu schreiben, schreibst du also document.write("<p align='center'>");Antwort 24 von TByte
jaja, tschuldigung, bin grad wirre im kopf. aber worauf ich hinaus wollte ist, wie man die anführungszeichen setzen soll, damit der browser das auch kapiert.
mfg
TByte
mfg
TByte

