如何设置的OnClick包含在IE8的功能属性值?(How to Set OnClick attri

2019-07-29 01:02发布

我的目标是改变onclick的链接的属性。 我可以成功地做到这一点,但生成的链接不会在IE8工作。 它在FF3工作。

例如,这在Firefox 3,但不是IE8。 为什么?

<p><a id="bar" href="#" onclick="temp()">click me</a></p>

<script>
    doIt = function() {
        alert('hello world!');
    }
    foo = document.getElementById("bar");
    foo.setAttribute("onclick","javascript:doIt();");
</script>

Answer 1:

你并不需要使用的setAttribute为 - 此代码的工作(IE8也)

<div id="something" >Hello</div>
<script type="text/javascript" >
    (function() {
        document.getElementById("something").onclick = function() { 
            alert('hello'); 
        };
    })();
</script>


Answer 2:

最好的办法是使用像jQuery或原型,但是,没有一个javascript框架,你应该使用:

if (foo.addEventListener) 
    foo.addEventListener('click',doit,false); //everything else    
else if (foo.attachEvent)
    foo.attachEvent('onclick',doit);  //IE only

编辑:

同样,你的函数是有点过。 它应该是

var doit = function(){
    alert('hello world!');
}


Answer 3:

您还可以设置的onclick打电话给你的功能是这样的:

foo.onclick = function() { callYourJSFunction(arg1, arg2); };

通过这种方式,你可以传递参数了。 .....



Answer 4:

你也可以使用:

element.addEventListener("click", function(){
    // call execute function here...
}, false);


文章来源: How to Set OnClick attribute with value containing function in ie8?