Я хотел бы изменить значение атрибута onclick
на якоре. Я хочу установить его в новую строку, содержащую JavaScript. (Эта строка предоставляется клиентскому JavaScript-коду сервером и может содержать все, что вы можете поместить в атрибут onclick
в HTML.) Вот несколько вещей, которые я пробовал:
- Использование jQuery
attr("onclick", js)
не работает как с Firefox, так и с IE6/7. - Использование
setAttribute("onclick", js)
работает с Firefox и IE8, но не с IE6/7. - Использование
onclick = function() { return eval(js); }
не работает, потому что вам не разрешено использоватьreturn
, код передан вeval()
.
У кого-нибудь есть предложение установить атрибут onclick для выполнения этой работы для Firefox и IE 6/7/8? Также см. Ниже код, который я использовал для проверки этого.
<html>
<head>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var js = "alert('B'); return false;";
// Set with JQuery: doesn't work
$("a").attr("onclick", js);
// Set with setAttribute(): at least works with Firefox
//document.getElementById("anchor").setAttribute("onclick", js);
});
</script>
</head>
<body>
<a href="#" onclick="location.href='http://www.google.com/'; return false;" id="anchor" onclick="alert('A'); return false;">Click</a>
</body>
</html>