<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<body>
<script>
var ss ={
name:'ss',
cc:function(){
with(document.body.insertBefore(document.createElement("div"), document.body.childNodes[0])){
style.height = style.width ='100px'; style.border = "1px solid #000000";
innerHTML = "<input value='按我' type='button' onclick = 'this.ff()'/>" //这个地方我想调用ff方法 该怎么克写??
}
},
ff:function(){
alert('a')
}
}
ss.cc()
</script>
</body>
<body>
<script>
var ss ={
name:'ss',
cc:function(){
with(document.body.insertBefore(document.createElement("div"), document.body.childNodes[0])){
style.height = style.width ='100px'; style.border = "1px solid #000000";
innerHTML = "<input value='按我' type='button' onclick = 'this.ff()'/>" //这个地方我想调用ff方法 该怎么克写??
}
},
ff:function(){
alert('a')
}
}
ss.cc()
</script>
</body>
是这个意思??
实际情况中 一般都是构造函数 根本就不知道对象名 自然不能用对象名来代替
要用this 的写法才行
再说你这个ss只是个object,并不是一个构造函数
var ss ={
name:'ss',
cc:function(){
with(document.body.insertBefore(document.createElement("div"), document.body.childNodes[0])){
style.height = style.width ='100px'; style.border = "1px solid #000000";
innerHTML = "<input value='按我' type='button' onclick = 'ff();'/>" //这个地方我想调用ff方法 该怎么克写??
}
}
}
// 拿到外面不也是挺清晰的么?
function ff(){
alert("ff")
}
ss.cc()
</script>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 4</title>
<script defer>
var ss ={
name:'ss',
cc:function(){
var d1 = document.createElement("div");
d1.innerHTML = "<input value='按我' type='button' onclick = '("+this.ff+")()'/>";
document.body.appendChild(d1);
},
ff:function(){
alert("ff");
}
}ss.cc();
</script>
</head><body>
</body></html>
d1.innerHTML = " <input value='按我' type='button' onclick = '("+this.ff+")()'/>";
强
把function的字符串一起写入了,不过只能用于简单的function(内部没有this)
<body>
<script type="text/javascript">
function addListener(elem, type, hdl){
if (elem.addEventListener) {
elem.addEventListener(type, hdl, false);
} else if (elem.attachEvent) {
elem.attachEvent('on' + type, hdl);
} else {
elem['on' + type] = hdl;
}
}
var ss = {
name: 'ss',
cc: function(){
var self = this;
var div = document.body.insertBefore(document.createElement("div"), document.body.childNodes[0]);
var btn = document.createElement('input');
with (div.style) {
height = width = '100px';
border = "1px solid #000000";
}
btn.type = 'button';
btn.value = '按我';
addListener(btn, 'click', function(){
self.ff();
});
div.appendChild(btn);
},
ff: function(){
alert('a');
}
}
ss.cc();
</script>
</body>
还是有些不明白
为何你这么写可以 放到我那么写的上面却又报告错误..
cc:function(){
alert("<input value='按我' type='button' onclick = '("+this.ff+")()'/>");//alert看看是什么
with(document.body.insertBefore(document.createElement("div"), document.body.childNodes[0])){
style.height = style.width ='100px'; style.border = "1px solid #000000";
innerHTML = "<input value='按我' type='button' onclick = '("+this.ff+")()'/>";//这个地方我想调用ff方法 该怎么克写??
}
},
this是指的ff但是在with里面 有问题
ie 报告Syntax error
ff 下正常!~
lz如果可以接受的话,把ff函数中的单引号改成双引号就没问题了