<!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>

解决方案 »

  1.   

    innerHTML = "<input  value='按我' type='button' onclick = 'ff();'/>"  
      

  2.   

    innerHTML = "<input  value='按我' type='button' onclick = 'ss.ff()'/>"
    是这个意思??
      

  3.   

    innerHTML = " <input  value='按我' type='button' onclick = 'ss.ff();'/>"  
      

  4.   

    ss.ff()这中写法是不允许的
    实际情况中 一般都是构造函数  根本就不知道对象名  自然不能用对象名来代替
    要用this 的写法才行
      

  5.   

    不可能用this的,当写入html后,事件被触发时this指的是window对象
    再说你这个ss只是个object,并不是一个构造函数
      

  6.   

    如果按照LZ的意思,要用dom方法添加html元素,并绑定事件(这里可以用this(要看情况))
      

  7.   

    为什么一定要把对象写那么深呢?<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 = 'ff();'/>"  //这个地方我想调用ff方法  该怎么克写??
           }
      }
    }
    // 拿到外面不也是挺清晰的么?
    function ff(){
    alert("ff")
    }
    ss.cc()
    </script>
      

  8.   

    d1.innerHTML = "<input  value='按我' type='button' onclick = '("+this.ff+")()'/>";
      

  9.   

    IE6测试通过
    <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>
      

  10.   


    d1.innerHTML = " <input  value='按我' type='button' onclick = '("+this.ff+")()'/>";
      

  11.   

    d1.innerHTML = " <input  value='按我' type='button' onclick = '("+this.ff+")()'/>";

    把function的字符串一起写入了,不过只能用于简单的function(内部没有this)
      

  12.   


    <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>
      

  13.   

    to :lihui_shine 
    还是有些不明白 
    为何你这么写可以 放到我那么写的上面却又报告错误..  
      

  14.   

    报什么错误呢?
    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方法  该怎么克写??
           }
      },
      

  15.   

     强烈推荐的写法,你可以试一下,这是一个命名空间,innerHTML = "<input  value='按我' type='button' onclick = 'ss.ff()'/>只要把这句改过来就可以了.这是面向对象的编程.
      

  16.   

    直接alert没什么问题
    this是指的ff但是在with里面 有问题
    ie 报告Syntax error
    ff 下正常!~
      

  17.   

    这个问题是由于单引号冲突引起的
    lz如果可以接受的话,把ff函数中的单引号改成双引号就没问题了