ผู้ใช้:Ans/cloneNode
จาก Lug
<script language="JavaScript" type="text/javascript">
var var_onclick = new Function("f(this);");
function f_onclick() { f(this); }
var a=document.createElement("button");
a.onclick=new Function("return 000;");
//a.innerHTML="<span onclick='return 111;' />";
//a.innerHTML="<button onclick='return 111;' />"; // not work
//a.innerHTML="<button onclick='return 111;'>x</button>"; // not work in ie
//a.innerHTML="<span onclick='return 111;' attr1>x</span>";
a.innerHTML="<div onclick='return 111;' attr1>x</div>";
//a.innerHTML="<a onclick='return 111;' attr1>x</a>"; // not work in ie
//a.firstChild.onclick=new Function("return 222");
// clone: null in ie, but not ffox
//a.firstChild.onclick=a.firstChild.onclick;
function f(node) {
var debug = document.getElementById("debug");
debug.value += "a.addEventListener:"+a.addEventListener+"\n";
// ffox span/div/a child: ... 111 ...; ie span/div child: ... 111 ...
// ffox button child: undefined
debug.value += "a:"+a.firstChild.onclick+"\n";
debug.value += "a:"+a.cloneNode(true).firstChild.onclick+"\n";
debug.value += "a:"+a.firstChild.cloneNode(true).onclick+"\n";
a.firstChild.onclick=a.firstChild.onclick;
// ffox span/div/a child: ... 111 ...; ie span/div child: ... 111 ...
// ffox button child: undefined
debug.value += "a:"+a.firstChild.onclick+"\n";
// ffox span/div/a child: ... 111 ...; ie span/div child: null
// ffox button child: undefined
debug.value += "a:"+a.cloneNode(true).firstChild.onclick+"\n";
debug.value += "a:"+a.firstChild.cloneNode(true).onclick+"\n";
a.firstChild.onclick=new Function("return 222");
// ffox: ... 222 ...; ie: 222
debug.value += "a:"+a.firstChild.onclick+"\n";
// ffox span/div/a child: ... 111 ...; ie: null
// ffox button child: undefined
debug.value += "a:"+a.cloneNode(true).firstChild.onclick+"\n";
debug.value += "a:"+a.firstChild.cloneNode(true).onclick+"\n";
var test = document.getElementById("test");
debug.value += "t.addEventListener:"+test.addEventListener+"\n";
debug.value += "t.attachEvent:"+test.attachEvent+"\n";
debug.value += "t.cloneNode:"+test.cloneNode+"\n";
// ffox: ... 333 ...; ie: ... 333 ...
debug.value += "t:"+test.onclick+"\n";
debug.value += "t:"+test.cloneNode(true).onclick+"\n";
test.onclick = test.onclick;
// ffox: ... 333 ...; ie: ... 333 ...
debug.value += "t:"+test.onclick+"\n";
// ffox: ... 333 ...; ie: null
debug.value += "t:"+test.cloneNode(true).onclick+"\n";
test.onclick = function () { return 444; };
// ffox: ... 444 ...; ie: ... 444 ...
debug.value += "t:"+test.onclick+"\n";
// ffox: ... 333 ...; ie: null
debug.value += "t:"+test.cloneNode(true).onclick+"\n";
// ffox: undefined; ie: undefined
debug.value += "t.onClick:"+test.onClick+"\n";
debug.value += "t.onClick:"+test.cloneNode(true).onClick+"\n";
test.onClick = test.onClick;
// ffox: undefined; ie: undefined
debug.value += "t.onClick:"+test.onClick+"\n";
debug.value += "t.onClick:"+test.cloneNode(true).onClick+"\n";
test.onClick = function () { return 444; };
// ffox: ... 444 ...; ie: ... 444 ...
debug.value += "t.onClick:"+test.onClick+"\n";
// ffox: undefined; ie: ... 444 ...
debug.value += "t.onClick:"+test.cloneNode(true).onClick+"\n";
// ffox: undefined; ie: undefined
debug.value += "t.xxx:"+test.xxx+"\n";
debug.value += "t.xxx:"+test.cloneNode(true).xxx+"\n";
test.xxx = test.xxx;
// ffox: undefined; ie: undefined
debug.value += "t.xxx:"+test.xxx+"\n";
debug.value += "t.xxx:"+test.cloneNode(true).xxx+"\n";
test.xxx = function () { return 444; };
// ffox: ... 444 ...; ie: ... 444 ...
debug.value += "t.xxx:"+test.xxx+"\n";
// ffox: undefined; ie: ... 444 ...
debug.value += "t.xxx:"+test.cloneNode(true).xxx+"\n";
// ffox, ie: 333
debug.value += "t.title:"+test.title+"\n";
debug.value += "t.title:"+test.cloneNode(true).title+"\n";
test.title = test.title;
// ffox, ie: 333
debug.value += "t.title:"+test.title+"\n";
debug.value += "t.title:"+test.cloneNode(true).title+"\n";
test.title = 444;
// ffox, ie: 444
debug.value += "t.title:"+test.title+"\n";
debug.value += "t.title:"+test.cloneNode(true).title+"\n";
// ffox, ie: native
debug.value += "t.appendChild:"+test.appendChild+"\n";
debug.value += "t.appendChild:"+test.cloneNode(true).appendChild+"\n";
test.appendChild = test.appendChild;
// ffox, ie: native
debug.value += "t.appendChild:"+test.appendChild+"\n";
debug.value += "t.appendChild:"+test.cloneNode(true).appendChild+"\n";
test.appendChild = 444;
// ffox, ie: 444
debug.value += "t.appendChild:"+test.appendChild+"\n";
// ffox: native; ie: 444
debug.value += "t.appendChild:"+test.cloneNode(true).appendChild+"\n";
test = document.getElementById(name="test2");
// ffox: undefined; ie: null
debug.value += name+":"+test.onclick+"\n";
debug.value += name+":"+test.cloneNode(true).onclick+"\n";
test.onclick = test.onclick;
// ffox: undefined; ie: null
debug.value += name+":"+test.onclick+"\n";
debug.value += name+":"+test.cloneNode(true).onclick+"\n";
test.onclick = function () { return 444; };
// ffox: ... 444 ...; ie: ... 444 ...
debug.value += name+":"+test.onclick+"\n";
// ffox: undefined; ie: null
debug.value += name+":"+test.cloneNode(true).onclick+"\n";
test = document.getElementById(name="test3");
// ffox: undefined; ie: null
debug.value += name+":"+test.onclick+"\n";
debug.value += name+":"+test.cloneNode(true).onclick+"\n";
test.onclick = test.onclick;
// ffox: undefined; ie: null
debug.value += name+":"+test.onclick+"\n";
debug.value += name+":"+test.cloneNode(true).onclick+"\n";
test.onclick = function () { return 444; };
// ffox: ... 444 ...; ie: ... 444 ...
debug.value += name+":"+test.onclick+"\n";
// ffox: undefined; ie: null
debug.value += name+":"+test.cloneNode(true).onclick+"\n";
}
</script>
<span onclick='f(this);' >span</span>
<button onclick='f(this);' >a</button>
<span onclick='var_onclick();' >span</span>
<button onclick='var_onclick();' >a</button>
<span onclick='f_onclick();' >span</span>
<button onclick='f_onclick();' >a</button>
<button onclick='return 333;' title=333 id=test >a</button>
<button id=test2 >a</button>
<div id=test3 >a</div>
<textarea id=debug rows=12 cols=100 >
</textarea>
Ans made an edit on 27 มีนาคม 2552
|
|