如何在ie8中使用包含函数的值设置OnClick属性?

发布于 2024-07-24 07:33:37 字数 430 浏览 10 评论 0原文

我的目标是更改链接的 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>

My goal is to change the onclick attribute of a link. I can do it successfully, but the resulting link doesn't work in ie8. It does work in ff3.

For example, this works in Firefox 3, but not IE8. Why?

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

把回忆走一遍 2024-07-31 07:33:37

您不需要为此使用 setAttribute - 此代码有效(IE8 也适用)

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

You don't need to use setAttribute for that - This code works (IE8 also)

<div id="something" >Hello</div>
<script type="text/javascript" >
    (function() {
        document.getElementById("something").onclick = function() { 
            alert('hello'); 
        };
    })();
</script>
給妳壹絲溫柔 2024-07-31 07:33:37

你最好的选择是使用像jquery或prototype这样的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!');
}

your best bet is to use a javascript framework like jquery or prototype, but, failing that, you should use:

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

edit:

also, your function is a little off. it should be

var doit = function(){
    alert('hello world!');
}
似最初 2024-07-31 07:33:37

您还可以设置 onclick 来调用您的函数,如下所示:

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

这样,您也可以传递参数。
……

You could also set onclick to call your function like this:

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

This way, you can pass arguments too.
.....

离鸿 2024-07-31 07:33:37

您还可以使用:

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

You also can use:

element.addEventListener("click", function(){
    // call execute function here...
}, false);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文