【发布时间】:2013-04-26 14:51:27
【问题描述】:
如何从href调用javascript?
喜欢:
<a href="<script type='text/javascript'>script code</script>/">Call JavaScript</a>
【问题讨论】:
-
除非有令人信服的理由,否则最好将 用于此类事情。
标签: javascript html
如何从href调用javascript?
喜欢:
<a href="<script type='text/javascript'>script code</script>/">Call JavaScript</a>
【问题讨论】:
标签: javascript html
<a onClick="yourFunction(); return false;" href="fallback.html">One Way</a>
** 编辑 **
从一连串的 cmets 中,我分享给定/找到的资源。
以前的 SO Q 和 A:
有趣的读物:
【讨论】:
javascript: 前缀...?
javascript:。
javascript: 前缀。
<a href="javascript:call_func();">...</a>
函数必须返回 false 以使浏览器不会转到另一个页面。
但我建议使用 jQuery(使用 $(...).click(function () {})))
【讨论】:
单击链接时调用 javascript 代码的正确方法是添加 onclick 处理程序:
<a href="#" onclick="myFunction()">LinkText</a>
虽然一个更“更合适”的方法是在加载 dom 时将其全部从 html 中取出,并使用另一个 javascript 添加处理程序。
【讨论】:
<a href="javascript:void(0)" onClick="myFunction">LinkText</a>
JavaScript 代码通常从链接的onclick 事件中调用。例如,您可以改为:
在 HTML 文档的头部
<script type='text/javascript'>
function myFunction(){
//...script code
}
</script>
在 HTML 文档正文中
<a href="#" id="mylink" onclick="myFunction(); return false">Call JavaScript </a>
或者,您也可以使用链接的 ID、HTML DOM 或 JQuery 等框架将函数附加到链接。
例如:
在 HTML 文档的头部
<script type='text/javascript'>
document.getElementById("mylink").onclick = function myFunction(){ ...script code};
</script>
在 HTML 文档正文中
<a href="#" id="mylink">Call JavaScript </a>
【讨论】:
使用 JQuery 会很好;
<a href="#" id="youLink">Call JavaScript </a>
$("#yourLink").click(function(e){
//do what ever you want...
});
【讨论】:
我会完全避免使用内联 javascript,正如我在评论中提到的,我也可能为此使用 <input type="button" />。话说……
<a href="http://stackoverflow.com/questions/16337937/how-to-call-javascript-from-a-href" id="mylink">Link.</a>
var clickHandler = function() {
alert('Stuff happens now.');
}
if (document.addEventListener) {
document.getElementById('mylink').addEventListener('click', clickHandler, false);
} else {
document.getElementById('mylink').attachEvent('click', clickHandler);
}
【讨论】:
不知道为什么这对我有用,而其他没有,但以防万一其他人仍在寻找......
在头部标签之间:
<script>
function myFunction() {
script code
}
</script>
那么对于标签:
<a href='' onclick='myFunction()' > Call Function </a>
【讨论】:
<a href="javascript:
console.dir(Object.getOwnPropertyDescriptors(HTMLDivElement))">
1. Direct Action Without Following href Link
</a>
<br><br>
<a href="javascript:my_func('http://diasmath.blogg.org')">
2. Indirect Action (Function Call) Without Following Normal href Link
</a>
<br><br>
<!-- Avec « return false » l'action par défaut de l'élément
// <a></a> (ouverture de l'URL pointée par
// « href="http://www.centerblog.net/gha" »)
// ne s'exécute pas.
-->
<a target=_new href="http://www.centerblog.net/gha"
onclick="my_func('http://diasmath.blogg.org');
return false">
3. Suivi par défaut du Lien Normal href Désactivé avec
« return false »
</a>
<br><br>
<!-- Avec ou sans « return true » l'action par défaut de l'élément
// s'exécute pas.
-->
<a target=_new href="http://gha.centerblog.net"
onclick="my_func('http://diasmath.blogg.org');">
4. Suivi par défaut du Lien Normal href Conservé avec ou sans
« return true » qui est la valeur retournée par défaut.
</a>
<br><br>
<!-- Le diese tout seul ne suit pas le lien href. -->
<a href="#" onclick="my_func('http://diasmath.blogg.org')">
5. Lien Dièse en Singleton (pas de suivi href)
</a>
<script language="JavaScript">
function my_func(s) {
console.dir(Object.getOwnPropertyDescriptors(Document));
window.open(s)
}
</script>
<br>
<br>
<!-- Avec GESTION D'ÉVÉNEMENT.
// Événement (event) = click du lien
// Event Listener = "click"
// my_func2 = gestionnaire d'événement
-->
<script language="JavaScript">
function my_func2(event) {
console.dir(event);
window.open(event.originalTarget["href"])
}
</script>
<a target=_blank href="http://dmedit.centerblog.net"
id="newel" onclick="return false">
6. By specifying another eventlistener
(and deactivating the default).
</a>
<script language="JavaScript">
let a=document.getElementById("newel");
a.addEventListener("click",my_func2)
</script>
【讨论】:
如果你只想处理一个函数而不是处理它自己的 href,请在函数末尾添加 return false 语句:
<a href="#" onclick="javascript: function() {... ; return false} return false">click</>
【讨论】:
javascript:在这里没用,2)你定义了一个函数,但从不调用它。 3) 你定义函数的方式可能会导致语法错误。
另一种方法是:
<a href="javascript:void(0);" onclick="alert('testing')">
【讨论】:
编辑 这将在单击编辑函数名称后创建一个带有 Edit 的链接,因为 edit 将被调用。
【讨论】: