Відповіді:
<a onclick="jsfunction()" href="#">
або
<a onclick="jsfunction()" href="javascript:void(0);">
Редагувати:
Наведена відповідь насправді не є вдалим рішенням, дізнавшись багато про JS з моменту, коли я спочатку розмістив повідомлення. Дивіться відповідь EndangeredMassa нижче для кращого підходу до вирішення цієї проблеми.
Ненав'язливий 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>
hrefможу зробити, якщо я не хочу перенаправляти користувача та просто хочу запустити якийсь код? Змінити: Я бачу , що він може бути залишений порожнім: href="".
onclickподію через window.onload, а не ставити onclickбезпосередньо в <a>тег?
<a href="javascript:alert('Hello!');">Clicky</a>
EDIT, років потому: НІ! Ніколи цього не роби! Я був молодим і дурним!
Ще раз редагуйте: пару людей запитали, чому ви не повинні цього робити. Є кілька причин:
Презентація: HTML повинен орієнтуватися на презентацію. Поміщення JS в HREF означає, що ваш HTML зараз начебто має справу з бізнес-логікою.
Безпека: Javascript у вашому HTML, наприклад, порушує політику безпеки вмісту (CSP) . Політика безпеки вмісту (CSP) - це додатковий рівень безпеки, який допомагає виявляти та пом’якшувати певні типи атак, включаючи міжсайтові сценарії (XSS) та атаки введення даних. Ці атаки використовуються для всього, починаючи від крадіжки даних до деграментування сайту чи розповсюдження зловмисного програмного забезпечення. Детальніше читайте тут .
Доступність: Теги прив’язки призначені для посилання на інші документи / сторінки / ресурси. Якщо ваше посилання нікуди не йде, це має бути кнопка . Це набагато полегшує читачам екрану, терміналам шрифту шрифту тощо, щоб визначити, що відбувається, і надати користувачам з вадами зору корисну інформацію.
href='#'і alert()в onclick?
І чому б не ненав'язливий jQuery:
$(function() {
$("#unobtrusive").click(function(e) {
e.preventDefault(); // if desired...
// other methods to call...
});
});
HTML
<a id="unobtrusive" href="http://jquery.com">jquery</a>
Ненав'язливий 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 не скасовує запуск посилання. іншими словами, встановлення false false призводить до відключення посилання, якщо javascript запускається успішно. Дозволяючи запускати його, якщо JavaScript не робить, створюючи гарну резервну копію, щоб ваш вміст відображався в будь-якому випадку, для пошукових систем і якщо ваш код порушується або переглядається в системі, яка не має JavaScript.
Найкраща книга на цю тему - "Дом Сценарій" Джеремі Кіта
Або якщо ви використовуєте 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>
заснований на використанні відповіді @mister_lucky за допомогою jquery:
$('#unobtrusive').on('click',function (e) {
e.preventDefault(); //optional
//some code
});
Код Html:
<a id="unobtrusive" href="http://jquery.com">jquery</a>
просто використовуйте javascript: ---- sampleplale
javascript:var JFL_81371678974472 = new JotformFeedback({ formId: '81371678974472', base: 'https://form.jotform.me/', windowTitle: 'Photobook Series', background: '#e44c2a', fontColor: '#FFFFFF', type: 'false', height: 700, width: 500, openOnLoad: true })