nochmals Unterschied firefox und IExplorer
Gerd Gruber
- javascript
1 molily0 Gerd Gruber0 wahsaga
0 Joachim
Hallo Leute,
ich muss euch leider nochmal nerven.
Es wurde mir vorhin so optimal geholfen, dass ich es nochmals wage, hier eine Frage zu stellen.
Die Beispielseite unten funktioniert wieder mit dem firefox einwandfrei, mit dem IE leider nicht.
Die Seite erzeugt einen link. Beim erzeugen dieses Links, gebe ich ein onClick-Attribut an, in der ich als Werte ein javascript-Funktion setze. Klickt man auf den link, wird unter firefox ein der Text "es hat geklappt" angezeigt. Unter dem IE passiert leider nix.
Eigentlich wieder diesselbe Frage wie bei meiner letzten.
Wie kann ich dies umgehen, damit auch der IE, dass onclick-Attribut versteht und dementsprechen danach reagiert?
vielen Dank im voraus
Gerd
Beispielseite:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>test</title>
</head>
<script language="JavaScript" type="text/javascript">
<!--
function anzeigen(){
alert("es klappt!!");
}
function test() {
var newDIV = document.createElement("div");
var Ausrichtung1 = document.createAttribute("id");
Ausrichtung1.nodeValue = 'Layer1';
var divid=Ausrichtung1.nodeValue;
newDIV.setAttributeNode(Ausrichtung1);
newDIV.style.position = 'absolute';
newDIV.style.width = '93px';
newDIV.style.height = '94px';
newDIV.style.zIndex = '1';
newDIV.style.left = '154px';
newDIV.style.top = '90px';
newDIV.style.visibility= 'visible';
document.getElementsByTagName('body')[0].appendChild(newDIV)
var newa = document.createElement("a");
newa.href='javascript:;';
var Ausrichtung1 = document.createAttribute("href");
Ausrichtung1.nodeValue = 'javascript:;';
newa.setAttributeNode(Ausrichtung1);
var Ausrichtung6 = document.createAttribute("id");
Ausrichtung6.nodeValue ='a1';
var aid=Ausrichtung6.nodeValue;
newa.setAttributeNode(Ausrichtung6);
var Ausrichtung1 = document.createAttribute("onclick");
Ausrichtung1.nodeValue = 'anzeigen();';
newa.setAttributeNode(Ausrichtung1);
document.getElementById(divid).appendChild(newa);
var newtextlink = document.createTextNode('test');
document.getElementById(aid).appendChild(newtextlink);
}
//-->
</script>
<body>
<script language="JavaScript" type="text/javascript">
<!--
test();
//-->
</script>
</body>
</html>
Hallo,
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
Die XML-Deklaration mit Kodierungsangabe (<?xml version="1.0" encoding="iso-8859-1" ?>) fehlt. Das Dokument ist sonst für sich genommen kein gültiges XML (für XML gilt die Standardkodierung UTF-8).
function test() {
var newDIV = document.createElement("div");
var Ausrichtung1 = document.createAttribute("id");
Benutze doch der Einfachheit halber setAttribute().
newDIV.style.position = 'absolute';
Layoutinformationen solltest du im Stylesheet unterbringen.
document.getElementsByTagName('body')[0].appendChild(newDIV)
Statt document.getElementsByTagName('body')[0] einfach kürzer und performanter document.body.
var newa = document.createElement("a");
newa.href='javascript:;';
Letztendlich wenig sinnig. Entweder man notiert einen funktionsfähigen Hyperlink und fügt JavaScript-Logik hinzu oder man notiert direkt href="javascript:anzeige()".
var Ausrichtung1 = document.createAttribute("onclick");
Ausrichtung1.nodeValue = 'anzeigen();';
newa.setAttributeNode(Ausrichtung1);
Notiere einfach:
newa.onclick = anzeigen;
<script language="JavaScript" type="text/javascript">
<!--
test();
//-->
</script>
Das language-Attribute ist veraltet und unnötig.
In XHTML-Dokumenten solltest du keine Kommentare verwenden, um den Inhalt von script-Elementen zu verstecken. http://de.selfhtml.org/html/xhtml/unterschiede.htm#script_style
Mathias
vielen dank für die hilfe.
Mein Fehler war ich habe immer versucht
newa.onclick = 'anzeigen()';
anstatt
newa.onclick = anzeigen;
zu schreiben.
Die anderen Hilfshinweise nehme ich sehr dankbar an; bis auf den Stylesheet hinweis. Da diese in meiner Anwendung sehr dynamisch erzeugt werden, hat es wohl keinen Sinn, dies in Style-sheet dateien zu packen.
Vielen Dank nochmal für die rasche, sehr kompettente Antwort.
hi,
var newa = document.createElement("a");
newa.href='javascript:;';Letztendlich wenig sinnig. Entweder man notiert einen funktionsfähigen Hyperlink und fügt JavaScript-Logik hinzu oder man notiert direkt href="javascript:anzeige()".
Oder man nutzt überhaupt keinen Link, wenn es auch kein "echtes" Linkziel gibt.
gruß,
wahsaga
Hi,
var newa = document.createElement("a");
newa.href='javascript:;';
var txt = document.createTextNode("lala");
var a = document.createElement("a");
a.href = " #";
a.onclick = function() {alert("passt");return false;}
a.appendChild (txt);
document.getElementById([DEINE ID]).appendChild(a);
Gruesse, Joachim