Подтвердить что ты не робот

Как установить атрибут OnClick со значением, содержащим функцию в ie8?

Моя цель - изменить атрибут "onclick" ссылки. Я могу сделать это успешно, но результирующая ссылка не работает в ie8. Он работает в ff3.

Например, это работает в firefox3, но не 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>
4b9b3361

Ответ 1

Вам не нужно использовать setAttribute для этого - этот код работает (IE8 также)

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

Ответ 2

лучше всего использовать фреймворк javascript, например jquery или прототип, но, в противном случае, вы должны использовать:

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!');
}

Ответ 3

Вы также можете установить onclick для вызова вашей функции следующим образом:

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

Таким образом, вы также можете передавать аргументы. .....

Ответ 4

Вы также можете использовать:

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