Как использовать ссылку для вызова JavaScript-кода?
Как использовать ссылку для вызова JavaScript?
Ответ 1
<a onclick="jsfunction()" href="#">
или
<a onclick="jsfunction()" href="javascript:void(0);">
Edit:
Вышеупомянутый ответ действительно не является хорошим решением, много узнав о JS с тех пор, как я изначально разместил. Подробнее о решении этой проблемы см. Ответ под угрозой исчезновения ниже.
Ответ 2
Ненавязчивый JavaScript, отсутствие зависимости от библиотеки:
<html>
<head>
<script type="text/javascript">
// Wait for the page to load first
window.onload = function() {
//Get a reference to the link on the page
// with an id of "mylink"
var a = document.getElementById("mylink");
//Set code to run when the link is clicked
// by assigning a function to "onclick"
a.onclick = function() {
// Your code here...
//If you don't want the link to actually
// redirect the browser to another page,
// "google.com" in our example here, then
// return false at the end of this block.
// Note that this also prevents event bubbling,
// which is probably what we want here, but won't
// always be the case.
return false;
}
}
</script>
</head>
<body>
<a id="mylink" href="http://www.google.com">linky</a>
</body>
</html>
Ответ 3
И почему не ненавязчиво с jQuery:
$(function() {
$("#unobtrusive").click(function(e) {
e.preventDefault(); // if desired...
// other methods to call...
});
});
HTML
<a id="unobtrusive" href="http://jquery.com">jquery</a>
Ответ 4
<a href="javascript:alert('Hello!');">Clicky</a>
EDIT, спустя годы: НЕТ! Никогда не делай этого! Я был молод и глуп!
Ответ 5
Или, если вы используете PrototypeJS
<script type="text/javascript>
Event.observe( $('thelink'), 'click', function(event) {
//do stuff
Event.stop(event);
}
</script>
<a href="#" id="thelink">This is the link</a>
Ответ 6
Ненавязчивый Javascript имеет много преимуществ, вот шаги, которые он принимает, и почему он хорош для использования.
-
ссылка загружается как обычно:
< a id = "DaLink" href= "http://host/toAnewPage.html" > нажмите здесь </a>
Это важно, потому что он будет работать для браузеров с включенным javascript или если в коде javascript есть ошибка, которая не работает.
-
javascript запускается при загрузке страницы:
window.onload = function(){ document.getElementById("DaLink").onclick = function(){ if(funcitonToCall()){ // most important step in this whole process return false; } } }
-
если javascript работает успешно, возможно, загружая содержимое на текущей странице с помощью javascript, false возвращает отмену ссылки. другими словами, если поставить return false, это приведет к отключению ссылки, если javascript успешно работает. Позволяя ему работать, если javascript этого не делает, создавая хорошую резервную копию, чтобы ваш контент отображался в любом случае, для поисковых систем и если ваш код разбивается или просматривается в системе, отличной от javascript.
Лучшая книга на эту тему - "Dom Scription" Джереми Кейта
Ответ 7
Я думаю, вы можете использовать событие onclick
, что-то вроде этого:
<a onclick="jsFunction();">
Ответ 8
<a href="javascript:void(code)"></a>