online 1
gast (50)

/ Forum / Skripte(PHP,ASP,Perl...)

Skripte(PHP,ASP,Perl...)Skripte(PHP,ASP,Perl...)

Fragevon TByte vom 24.05.2020, 19:17 Options

JS: in text dynamisch schreiben & PopUp

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 schreiben

Antwort 1 von Dr.Ma-Busen vom 24.05.2020, 19:59 Options

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.

Antwort 2 von TByte vom 24.05.2020, 22:14 Options

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

Antwort 3 von Dr.Ma-Busen vom 24.05.2020, 23:07 Options

Vielleicht ist das hier ja verständlicher:
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 vom 24.05.2020, 23:31 Options

1. Nee, also verstanden hab ichs noch nicht.
2.Also haste vllt. sowas [ i ] geschireben?
mfg
TByte

Antwort 5 von Dr.Ma-Busen vom 24.05.2020, 23:39 Options

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



Zitat:
beachte doch mal bitte die Beitragsformatierung

nööö..... vielleicht das nächtes mal :)

Antwort 6 von TByte vom 24.05.2020, 23:48 Options

1. ich werds versuchn
2. klappt aba nicht
mfg
TByte

Antwort 7 von Dr.Ma-Busen vom 25.05.2020, 00:38 Options

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.

Antwort 8 von katy vom 25.05.2020, 11:53 Options

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:

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 vom 25.05.2020, 12:03 Options

sorry, kleiner Fehler: die Reihenfolge der Argumente der Funktion schreibe() ist vertauscht.

Antwort 10 von TByte vom 25.05.2020, 15:43 Options

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

Antwort 11 von katy vom 25.05.2020, 17:35 Options

Hallo TByte,

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 vom 25.05.2020, 18:37 Options

Ok, danke.
Und wie klappt jetzt nochmal die DOM-methode?

Antwort 13 von TByte vom 25.05.2020, 18:52 Options

sorry, noch ne frage:
gibs sowas wie GetElementByTagClass?
mfg
TByte

Antwort 14 von katy vom 25.05.2020, 19:45 Options

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

Antwort 15 von TByte vom 26.05.2020, 21:08 Options

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

Antwort 16 von TByte vom 27.05.2020, 18:42 Options

Also Getelementbyclass gibs nicht. Kann ich das irgendwie umschreiben?
mfg
TByte

Antwort 17 von katy vom 27.05.2020, 19:08 Options

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

Antwort 18 von TByte vom 27.05.2020, 19:09 Options

Ich wollt n Greasemonkey-Script schreiben, welches eine (lästige) Tabellenzeile ausblendet. Diese hat aber nur Klasse, keine ID!
mfg
TByte

Antwort 19 von katy vom 27.05.2020, 19:26 Options

wenn es sich wirklich nur um deinen eigenen Browser handelt ist ein User-Style mit dem Inhalt
.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 vom 27.05.2020, 19:52 Options

Also ich hab nur nach GetElementByClass gegooglet.
Wird die Library denn auch von allen Browsern unterstützt, die Greasemonkey haben?
mfg
TByte

Ähnliche Themen

PopUp
axe  04.05.2007 - 96 Hits - 3 Antworten

Suchfunktion Unterformular 2007
jimmy81  05.10.2007 - 65 Hits - 2 Antworten

Fenster öffnen nicht
SCFanatiker  31.10.2007 - 133 Hits - 4 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Thu Jan 8 21:07:44 2026