PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : IE nimmt event Attribute nicht an



undefined
28-07-2006, 11:00
Mit den allen anderen Browsern geht es nur mit IE habe ich Probleme, Irgendwie nimmt der meine Attributes angaben für onclick nicht an.


function MessangerWindow(i)
{
var div = document.createElement( 'div' );
div.setAttribute("id","MessangerLayer");
div.setAttribute("title","Zum Schliessen mit der Maus einen doppel klick verwenden.");

if ( ! is_ie ) {
var sty = document.createAttribute( 'style' );
sty.nodeValue = "width:710px;top:160px;left:210px;";
div.setAttributeNode( sty );
var eve = document.createAttribute( 'ondblclick' );
eve.nodeValue = "javascript:DestroyObject(this);";
div.setAttributeNode( eve );
} else {
div.setAttribute("style");
div.style.width = '710px';
div.style.height = '70px';
div.style.left = '210px';
div.style.top = '140px';
div.setAttribute("ondblclick","alert(this)");
}

var body = document.getElementsByTagName('body')[0];
body.appendChild( div );
div.innerHTML = unescape(i);
}

Gibt es hier ein Trick wie ich das IE beibringen kann?

nEox
28-07-2006, 12:06
Hallo undefined,

so sollte das funktionieren:


element.onclick = doSomething;

Siehe:
http://www.quirksmode.org/index.html?/js/events_tradmod.html

Eine weitere Möglichkeite einem Element einen Event zuzuweisen:
http://www.quirksmode.org/index.html?/js/events_advanced.html

Hoffe das hilft... :)

Grüße,
nEox

undefined
28-07-2006, 12:49
Merci, genau das war der Lösungs Ansatz


function MessangerWindow(i)
{
var div = document.createElement( 'div' );
div.setAttribute("id","MessangerLayer");
div.setAttribute("title",lng['DBLCLOSE']);

var DestroyMessangerLayer = function()
{
div.innerHTML = '';
div.style.display = 'none';
delete div;
}

if ( ! is_ie ) {
var sty = document.createAttribute( 'style' );
sty.nodeValue = "width:710px;top:160px;left:210px;";
div.setAttributeNode( sty );
var eve = document.createAttribute( 'ondblclick' );
eve.nodeValue = "javascript:DestroyMessangerLayer();";
div.setAttributeNode( eve );
} else {
div.setAttribute("style");
div.style.width = '710px';
div.style.height = '70px';
div.style.left = '210px';
div.style.top = '140px';
div.ondblclick = DestroyMessangerLayer;
}

var body = document.getElementsByTagName('body')[0];
body.appendChild( div );
div.innerHTML = unescape(i);
}