0

我已经为链接重定向编写了这段代码,但是代码的问题它只触发了第一种情况,它在 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:

<a href="http://www.google.com/">www.google.com</a></br>
<a href="http://www.ebay.com/">www.ebay.com</a></br>
4

2 回答 2

0

因为你在return(m);这里,它从那里返回并且不执行其余的代码。alert("Hi");您可以通过在 return 语句之后放置来测试它。这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> 
于 2013-06-25T15:26:02.047 回答
0

从上面的代码中删除 return(m)。它应该可以正常工作。第一次调用后返回。

于 2013-06-25T15:32:01.007 回答