2013-06-25 4 views
0

Я написал этот код для Link Перенаправление Но Проблема с кодом Это Срабатывает только первый случай Это Исключает Другие случаи в коммутаторе Заявлениепереключатель случай не работает должным образом в JavaScript

<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> 
+2

Ваш код дублируется между двумя первыми «case's», вы хотели это сделать? – Ian

+0

он работает для google, но он не работает для перенаправления ссылок ebay. – user2520639

+1

Почему у вас есть заявления 'return'? Они выйдут из обработчика функции onload, поэтому, конечно, он посещает только первый элемент привязки в цикле. – Ian

ответ

0

Удалить возвращение (m) из кода выше. Он должен работать нормально. Это возвращение после первого звонка.

0

Поскольку у вас есть return(m); здесь, он возвращается оттуда и не выполняет оставшуюся часть кода. вы можете проверить его, поставив alert("Hi"); после оператора возврата. Этот код 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> 
Смежные вопросы