Document.write
Mssmar
- javascript
Hi,
ich will anhand Document.write() innerhalb der selben File und genau an die selben Stelle einen Div schreiben lassen.
Das ganze wird aber nicht direkt geschrieben, sondern erst wenn die Funktion aufgerufen wird.
Das Problem ist aber wenn ich die Funktion aufrufe, wird eine neue Seite erzeugt und darin bekomme ich den Div mit dem Inhalt.
Wie kann man das lösen so, dass der Div genau in die selben Seite und an die gewünschte Stelle geschrieben wir.
Ist das mittles innerHtml lösbar und was muss man dazu einfügen oder coden, damit es an die gleichen Stelle geschrieben wird.
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><title>Untitled</title></head>
<body>
<script type="text/javascript" language="JavaScript">
function writeDivError() {
document.write("<div id='errorBackground' style='filter:alpha(opacity=50); -moz-opacity:0.5; opacity:0.5; position:absolute; top:14px; width:766px; height:920px; z-index:300; background-color: green;'></div>");
document.write("<div id='errorMessage' style='position:absolute; margin:264px 0 0 174px; width:450px; height:60px; z-index:302; background-color: #FF0000;'>");
document.write("<input type='Submit' value='ok' name='okay' class='errorMessageOkay'>");
document.write("</div>");
}
</script>
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas ipsum. Morbi at neque
sit amet nibh ultricies commodo. Maecenas sapien. Class aptent taciti sociosqu ad litora
torquent per conubia nostra, per inceptos hymenaeos.
</td>
</tr>
<tr><td><input onclick="writeDivError();" type="image" src="img/login.gif" alt="schnell einloggen" /></td></tr>
</table>
</body>
</html>
Vielen Dank und Gruß
Messmar
Ich weiß zwar nicht, obs richtig ist, aber ich habe immer ein Span-Element geschrieben:
<span id="ausgabe"></span>
und via Funktion dann dort mittels innerHTML das entsprechende hineingeschrieben.
Sollte es eine Einmalige sache sein (das span soll also verschwinden), kann auch mit outerHTML gearbeitet werden. Dann existiert aber das Element "ausgabe" nicht mehr.
MFG
Griever
hi,
sag mal, was veranstaltest du eigentlich für Kapriolen mit deinem Nick?
Neben dem bekannten Messmar gab es in den letzten Tagen zahlreiche Variationen wie meesmar, oder jetzt mssmar zu lesen - hat das einen besonderen Grund? (Vielleicht auch medizinischer Natur?)
Das Problem ist aber wenn ich die Funktion aufrufe, wird eine neue Seite erzeugt und darin bekomme ich den Div mit dem Inhalt.
Works as designed.
Wie kann man das lösen so, dass der Div genau in die selben Seite und an die gewünschte Stelle geschrieben wir.
Entweder, in dem man es eben nicht in eine Funktion packt, sondern gleich beim "Laden" der Seite ausführen lässt, oder -
Ist das mittles innerHtml lösbar
Ja, oder in dem du per dafür vorgesehener DOM-Methoden ein neues Div erzeugst und einhängst.
und was muss man dazu einfügen oder coden, damit es an die gleichen Stelle geschrieben wird.
Für die .innerHTML-Methode:
Einfach gewünschtes HTML in einem String zusammenbasteln, und dann der innerHTML-Eigenschaft eines geeigneten Elementes zuweisen.
gruß,
wahsaga
hi,
sag mal, was veranstaltest du eigentlich für Kapriolen mit deinem Nick?
Der Grund ist ziemlich einfach. Ich habe mich vertippt man oder was glaubst, dass es sein könnte. Und nachdem ich meine Zugangsdaten für speziefische Ansicht über meine EMail-Adress nicht mehr bekam, musste ich einen neuen Account mit dem Namen: Mssmar erstellen.
Mehr ist es nicht.
Ja, oder in dem du per dafür vorgesehener DOM-Methoden ein neues Div erzeugst und einhängst.
Ich habe fast die Lösung, aber eine Fehlermeldung (Syntaxfehler) lässt mich nicht weitermachen.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Untitled</title>
<script>
<!--
function hideDiv(divName) {
//alert("!!!!" + divName);
if (document.getElementById) { // DOM3 = IE5, NS6
document.getElementById(divName).style.display = 'none';
}
else {
if (document.layers) { // Netscape 4
document.divName.display = 'none';
}
else { // IE 4
document.all.divName.style.display = 'none';
}
}
}
function showDiv(divName) {
//alert("!!!" + divName);
if (document.getElementById) { // DOM3 = IE5, NS6
document.getElementById(divName).style.display = '';
}
else {
if (document.layers) { // Netscape 4
document.divName.display = '';
}
else { // IE 4
document.all.divName.style.display = '';
}
}
}
//-->
</script>
<style>
div#errorBackground {
filter:alpha(opacity=50); -moz-opacity:0.5; opacity:0.5;
position:absolute;
left:250px; _left:auto;
top:0px;
width:768px; height:1034px;
z-index:300;
background-color: green;
}
div#errorMessage {
position:absolute;
margin:271px 0 0 428px;
_margin:261px 0 0 174px;
width:450px; height:60px;
z-index:302;
background-color: #FF0000;
}
input.errorMessageOkay {
cursor:pointer;
margin:25px 10px 0 0;
_margin: 25px 180px 0 0;
background:transparent;
border:2px solid #113388;
width:100px;
}
</style>
</head>
<body>
<script type="text/javascript" language="JavaScript">
function writeDivError() {
document.body.innerHTML ="<div id='errorBackground' style='filter:alpha(opacity=50); -moz-opacity:0.5; opacity:0.5; position:absolute; top:14px; width:766px; height:920px; z-index:300; background-color: green;'></div>"+
"<div id='errorMessage' style='position:absolute; margin:264px 0 0 174px; width:450px; height:60px; z-index:302; background-color: #FF0000;'>"+
"<input onclick="hideDiv('errorBackground'); hideDiv('errorMessage');" type='Submit' value='ok' name='okay' class='errorMessageOkay'>"+
"</div>"+
document.body.innerHTML;
}
</script>
<form action="#" method="post">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas ipsum. Morbi at neque
sit amet nibh ultricies commodo. Maecenas sapien. Class aptent taciti sociosqu ad litora
torquent per conubia nostra, per inceptos hymenaeos.
</td>
</tr>
<tr><td><input onclick="writeDivError();" type="image" src="img/login.gif" alt="schnell einloggen" /></td></tr>
</table>
</form>
</body>
</html>
Vielen Dank und Gruß
Messmar
Gruß
Messmar
hi,
Ich habe fast die Lösung, aber eine Fehlermeldung (Syntaxfehler) lässt mich nicht weitermachen.
Trotz Nickwechsel immer noch eindeutig erkennbar - dass du die Fehlermeldung wieder mal nicht nennst, ist schon wieder ziemlich typisch.
gruß,
wahsaga
hi,
[...] dass du die Fehlermeldung wieder mal nicht nennst, ist schon wieder ziemlich typisch.
die Lautet wie ich es geschrieben habe:
Syntaxfelher bei IE-Konsole.
Aber ich habe es jetzt schon gelöst.
Es lag daran, dass von lauter Hochkomma durcheinander war und irgendwie die Verschachtlung nicht richtig hatte. Jetzt geht's.
Bezüglich des Bicknamens, es ist: Messmar und nicht Meesmar oder Mssmar
Vielen Dank und schöne Grüße
Messmar
die Lautet wie ich es geschrieben habe:
Syntaxfelher bei IE-Konsole.
Firefox hätte dir eine genauere Meldung ausgegeben mit dem Hinweis wo welches Zeichen falsch gewesen wäre.
Aber ich habe es jetzt schon gelöst.
so einfach geht das, einfach die Fehlermledung anschauen oft läßt sich dann das Problem lösen. Denn Hellsehen kann selbst hier keiner.
Struppi.