使用下面的脚本,我试图加载变量的输出" url"在浏览器中单击锚标记,执行它时会在警告框中显示预期的结果路径,但它会加载锚标记中提到的路径。我想在浏览器的相同选项卡中加载输出路径。请帮我解决这个问题。
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("a").on('click', function(){
var reqURL = window.location.href;
var hrefVal = $(this).attr('href');
var url;
if(hrefVal.indexOf("http")== -1){
if(reqURL.indexOf("/ca-en") != -1){
url="http://www.mywebsite.com/site2"+hrefVal;
}else if(reqURL.indexOf("/ca-fr")> -1){
url="http://www.mywebsite.com/site3"+hrefVal;
}else{
url="http://www.mywebsite.com"+hrefVal;
}
alert(url);
window.open(url,"_self");
}
});
});
</script>
</head>
<body>
<ul>
<li>
<a class="category" href="/home.html">home<span class="icon plus"></span></a>
<ul class="submenu">
<li><a href="/home/abc.html">abc</a></li>
<li><a href="/home/xyz.html">xyz</a></li>
<li><a href="/home/tam.html">tam</a></li>
</ul>
</li>
</ul>
</body>
</html>
答案 0 :(得分:0)
您需要在onclick
上添加anchor tag
功能。否则,在javascrip href
加载之前,它始终会重定向到anchor tag
window.open
路径。
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script>
function redirect(parameter){
var reqURL = window.location.href;
var hrefVal = parameter;
var url;
if(hrefVal.indexOf("http")== -1){
if(reqURL.indexOf("/ca-en") != -1){
url="http://www.mywebsite.com/site2"+hrefVal;
}else if(reqURL.indexOf("/ca-fr")> -1){
url="http://www.mywebsite.com/site3"+hrefVal;
}else{
url="http://www.mywebsite.com"+hrefVal;
}
alert(url);
window.open(url,"_self");
}
}
</script>
</head>
<body>
<ul>
<li>
<a class="category" href="/home.html">home<span class="icon plus"></span></a>
<ul class="submenu">
<li><a href="#" onclick="redirect('/home/abc.html')">abc</a></li>
<li><a href="#" onclick="redirect('/home/xyz.html')">xyz</a></li>
<li><a href="#" onclick="redirect('/home/tam.html')">tam</a></li>
</ul>
</li>
</ul>
</body>
</html>
答案 1 :(得分:0)
NSDictionary *_response = @
{
@"message":checkForNil([response message])
],...
很简单..
答案 2 :(得分:0)
问题在于您何时使用<a>
代码,它曾用于重定向到您在href
中给出的任何值。因此,在执行脚本之前,您可能会阻止<a>
标记的默认行为。
在event.preventDefault()
脚本中使用onclick
。这会阻止您<a>
代码的默认重定向。
找到fiddler供您参考。
希望它有所帮助。
答案 3 :(得分:0)
在执行自定义行为逻辑之前,必须停止锚标记的默认行为。您的代码可以写成如下:
<script>
$(function(){
$("a").on('click', function(e){
e.preventDefault();
var reqURL = window.location.href;
var hrefVal = $(this).attr('href');
var url;
if(hrefVal.indexOf("http")== -1){
if(reqURL.indexOf("/ca-en") != -1){
url="http://www.mywebsite.com/site2"+hrefVal;
}else if(reqURL.indexOf("/ca-fr")> -1){
url="http://www.mywebsite.com/site3"+hrefVal;
}else{
url="http://www.mywebsite.com"+hrefVal;
}
alert(url);
window.open(url,"_self");
}
});
});
</script>