[英]switch case not working properly in javascript
I Have Written This Code For Link Redirection But The Problem With The Code It Triggered Only First Case It Omits Other Cases In The Switch Statement 我已经为链接重定向编写了此代码,但是该代码的问题仅触发第一种情况,而忽略了switch语句中的其他情况
<script type="text/javascript">
window.onload = function () {
var links = document.getElementsByTagName("a");
for (var i = 0; i < links.length; i++) {
var string = links[i].href; //href value
var str = string;
var spl = string.split("/");
switch (spl[2]) {
case 'www.google.com':
var str1 = "http://yahoo.com";
links[i].target = "_blank";
var m = links[i].addEventListener("mouseup", function () {
window.open(str1)
}, false);
return (m);
break;
case 'www.ebay.com':
var str1 = "http://yahoo.com";
links[i].target = "_blank";
var m = links[i].addEventListener("mouseup", function () {
window.open(str1)
}, false);
return (m);
break;
default:
links[i].href = string;
}
}
}
</script>
HTML: HTML:
<a href="http://www.google.com/">www.google.com</a></br>
<a href="http://www.ebay.com/">www.ebay.com</a></br>
Since you have return(m);
既然你有
return(m);
here, it returns from there and do not execute the rest of the code. 在这里,它从那里返回,并且不执行其余代码。 you can test it by putting
alert("Hi");
您可以通过发出
alert("Hi");
来测试它alert("Hi");
after the return statement. 在return语句之后。 This
alert
should not work for your code. 此
alert
不适用于您的代码。
<script type="text/javascript">
window.onload = function () {
var links = document.getElementsByTagName("a");
for (var i = 0; i < links.length; i++) {
var string = links[i].href; //href value
var str = string;
var spl = string.split("/");
switch (spl[2]) {
case 'www.google.com':
var str1 = "http://yahoo.com";
links[i].target = "_blank";
var m = links[i].addEventListener("mouseup", function () {
window.open(str1)
}, false);
break;
case 'www.ebay.com':
var str1 = "http://yahoo.com";
links[i].target = "_blank";
var m = links[i].addEventListener("mouseup", function () {
window.open(str1)
}, false);
break;
default:
links[i].href = string;
}
}
}
</script>
Remove return(m) from above code. 从上面的代码中删除return(m)。 It should work fine.
它应该工作正常。 It's return after first call.
第一次通话后返回。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.