Как вызвать функцию JavaScript вместо href в HTML
у меня есть макет в HTML
<a href="javascript:ShowOld(2367,146986,2)"><img title="next page" alt="next page" src="/themes/me/img/arrn.png"></a>
Я получил ответ от сервера, когда я послал запрос.
С этим макетом я получил как ответ на запрос AJAX, который отправляет мой код на сервер.
Ну, все в порядке, но когда я нажимаю на ссылку, браузер хочет открыть функцию как ссылку; то есть после щелчка я вижу адресную строку как
javascript:ShowOld(2367,146986,2)
означает браузер вещь, которая является url, если я хочу сделать это в firebug, что это работа. Теперь Я хотите сделать это, то когда кто-то нажимает на ссылку, то браузер пытается вызвать функцию, уже загруженную в DOM вместо того, чтобы пытаться открыть их в браузере.
6 ответов:
этот синтаксис должен работать нормально, но вы можете попробовать этот вариант.
<a href="javascript:void(0);" onclick="ShowOld(2367,146986,2);">
или
<a href="javascript:ShowOld(2367,146986,2);">
Если у вас есть только как "Click event handler", используйте
<button>
вместо. Ссылка имеет определенное семантическое значение.например:
<button onclick="ShowOld(2367,146986,2)"> <img title="next page" alt="next page" src="/themes/me/img/arrn.png"> </button>
попробуйте сделать ваш javascript ненавязчивым:
- вы должны использовать реальную ссылку в href атрибут
- и добавить прослушиватель на событие click для обработки ajax
Я использую немного CSS на промежутке, чтобы сделать его похожим на ссылку так:
CSS:
.link { color:blue; text-decoration:underline; cursor:pointer; }
HTML:
<span class="link" onclick="javascript:showWindow('url');">Click Me</span>
JAVASCRIPT:
function showWindow(url) { window.open(url, "_blank", "directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes"); }
вы также должны отделить javascript от HTML.
HTML:<a href="#" id="function-click"><img title="next page" alt="next page" src="/themes/me/img/arrn.png"></a>
javascript:
myLink = document.getElementById('function-click'); myLink.onclick = ShowOld(2367,146986,2);
просто убедитесь, что последняя строка в функции ShowOld:
return false;
как это остановит ссылку открывать в браузере.