Javascript HTML标记<;a>;使用href和onclick以及AJAX请求
我希望href和onclick都能正常工作,我在这里找到了一个解决方案: 在myFunction中,我发出一个AJAX请求,调用一个perl组件 当我将Javascript调用放在href中时,它可以正常工作,但在onclick中则不行。不幸的是,jQuery也不允许我使用这个解决方案,所以请您提供帮助Javascript HTML标记<;a>;使用href和onclick以及AJAX请求,javascript,html,ajax,perl,tags,Javascript,Html,Ajax,Perl,Tags,我希望href和onclick都能正常工作,我在这里找到了一个解决方案: 在myFunction中,我发出一个AJAX请求,调用一个perl组件 当我将Javascript调用放在href中时,它可以正常工作,但在onclick中则不行。不幸的是,jQuery也不允许我使用这个解决方案,所以请您提供帮助 // AJAX Request doesn't work <a href="www.mysite.com" onclick="myFunction();">Item</a&g
// AJAX Request doesn't work
<a href="www.mysite.com" onclick="myFunction();">Item</a>
<script type="text/javascript">
function myFunction () {
var xmlHttp = getXMLHttpObject();
xmlHttp.open('GET', 'perl.m', true);
return true;
}
</script>
// AJAX Request ok
<a href="javascript: myFunction('www.mysite.com')">Item</a>
<script type="text/javascript">
function myFunction (url) {
var xmlHttp = getXMLHttpObject();
xmlHttp.open('GET', 'perl.m', true);
window.location.href = goto_url;
}
</script>
perl.m:
<%init>
warn "perl.m";
... update ...
</%init>
//AJAX请求不起作用
函数myFunction(){
var xmlHttp=getXMLHttpObject();
open('GET','perl.m',true);
返回true;
}
//AJAX请求确定
函数myFunction(url){
var xmlHttp=getXMLHttpObject();
open('GET','perl.m',true);
window.location.href=goto_url;
}
perl.m:
警告“perl.m”;
... 更新。。。
试试:
<a href="www.mysite.com" onclick="myFunction(event);">Item</a>
<script type="text/javascript">
function myFunction (e) {
e.preventDefault();
var xmlHttp = getXMLHttpObject();
xmlHttp.open('GET', 'perl.m', true);
return true;
}
</script>
函数myFunction(e){
e、 预防默认值();
var xmlHttp=getXMLHttpObject();
open('GET','perl.m',true);
返回true;
}
因为您有带有url的href
attr,所以它将转到url,您的ajax不会受到影响。
e.preventDefault()
是您的解决方案。请仔细阅读本教程。它声明您必须像这样输入javascript(使用return关键字)
此外,您应该始终键入URL(如)
如果这对您有帮助,请告诉我。谢谢。我尝试了e.preventDefault(),AJAX调用可以使用它。但是不再调用href中的URL,尽管函数返回true。当然,href中的URL将无法访问,因为您已经调用了Ajax。如果要使用href attr访问,请使用window.location.href=;谢谢,现在可以用了。新站点可以通过单击来调用,但也可以通过单击上下文菜单中的“new Tab”来调用,然后不需要我的Ajax请求。我在谷歌上搜索了很多,但还没有找到解决办法。如果你能再帮我一次,那太好了。我很高兴我的第一个回答帮助了你。你介意更详细地解释你的进一步问题吗?通过上下文菜单打开(我假设FireFox)是否有效?