Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML标记<;a>;使用href和onclick以及AJAX请求_Javascript_Html_Ajax_Perl_Tags - Fatal编程技术网

Javascript HTML标记<;a>;使用href和onclick以及AJAX请求

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

我希望href和onclick都能正常工作,我在这里找到了一个解决方案:

在myFunction中,我发出一个AJAX请求,调用一个perl组件

当我将Javascript调用放在href中时,它可以正常工作,但在onclick中则不行。不幸的是,jQuery也不允许我使用这个解决方案,所以请您提供帮助

// 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)是否有效?