<script>
var role = {};
role.add = function(){alert(1)}function add(){role.add()}
</script><a onclick="role.add()">添加</a>
<a onclick="add()">添加</a>
-----------------------------
第一个添加IE报错,第二个正常。
<a onclick="alert(role)">添加</a>用这样的方法测试发现,role即不是object,也不是undefined,
有没有高人给指点一下啊。chromeiehtmlfunctionobject

解决方案 »

  1.   

    哥哥,你真的假的啊,我IE8下测试都还是一样的报错啊
    <a onclick="role.add()">添加</a>
    这一个会报错的。
      

  2.   

    <!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=utf-8" />
    <title>无标题文档</title>
    <script type="text/javascript">
    var role = {};
    role.add = function(){alert(1)}
    function add(){role.add()}
    function init(){
    var as=document.getElementsByTagName("a")[0];
    as.onclick=role.add;
    }
    window.onload=init;
    </script>
    </head><body>
    <a>添加</a>
    <a onclick="add()">添加</a>
    </body>
    </html>
    改成这样试试
      

  3.   

    找不到原因,给后人留下点东西。
    我是用easyui在datagrid中使用linkbutton在绑定事件的时候,onClick在IE下报错,最终改为datagrid.columns:
    { field: 'RoleId', title: '操作', align: 'center', formatter: function (value) {
              var btns = '<a class="easyui-linkbutton" iconCls="icon-edit" click="role.editOpen(' + value + ')"></a>' +
                         '<a class="easyui-linkbutton" iconCls="icon-no" click="alert()"></a>';
              return btns;}
            }datagrid.onLoadSuccess():$.extend($.fn.datagrid.defaults, {
      onLoadSuccess: function () {
        var panel = $(this).datagrid("getPanel");
        var gridBody = panel.find("div.datagrid-body");
        //表格内按钮加载样式及绑定事件(在此用click而不是标签上用onClick是因为IE下无法调用对象的方法(object.function)
        gridBody.find('.easyui-linkbutton').linkbutton({ plain: true }).click(function () { eval($(this).attr("click")) });
      }
    });
      

  4.   


    发现原因了,role换个名字在IE8下面就好用了,查了一下,大约是IE8中role是个关键字,所以报错。