2016-04-22 53 views
0

我在HTML和Javascript中也开启了多个url开启者。我遇到一些HTTP链接打开但HTTPS链接不正常的问题。任何人都可以帮助我吗?这是代码。如何在html和javascript中创建多个url开启者

function open_all() { 
 
    var urls = document.getElementById("list_urls").value; 
 
    var urls = urls.split('\n'); 
 
    var totalno = urls.length; 
 
    var s; 
 
    for (var i = 0; i < totalno; i++) { 
 
    s = urls[i]; 
 
    if (s) { 
 
     if (s.substr(0, 7) != 'http://') { 
 
     s = 'http://' + s; 
 
     } 
 
     window.open(s); 
 
    } 
 
    } 
 
    return false; 
 
}
<form method="post" action=""> 
 
    <br /> 
 
    <textarea name="list_urls" id="list_urls" cols="60" rows="20"></textarea> 
 
    <br /> 
 
    <br /> 
 
    <input value="Open URLs" class="submit" type="button" onClick="open_all();"> 
 
    <br /> 
 
    <input type="reset" value="Reset!"> 
 
    <br/> 
 
</form>

在此先感谢

+0

NO寄托都工作正常,但只有https://开头的链接不开放所有的http://链接都是开放的更多信息,请参阅http://www.openmultipleurl.com/这样它的工作,但它的假设像这样工作http://multiurlopener.blogspot.in/ –

回答

2

问题是因为当前的代码将添加到http://https://开头的URL的开始。您需要更改逻辑,以便在URL的开头以及http://处检查https://。您还可以稍微整理逻辑并使用trim()确保行不仅仅是空格。试试这个:

function open_all() { 
    var urls = document.getElementById("list_urls").value.split('\n'); 
    for (var i = 0; i < urls.length; i++) { 
     var url = urls[i]; 
     if (url.trim()) { 
      if (s.substr(0,7) != 'http://' && s.substr(0,8) != 'https://') 
       url = 'http://' + url; 
      window.open(url); 
     } 
    } 
    return false; 
} 

另外请注意,你可能与浏览器的弹出式窗口拦截阻止你这么快就垃圾邮件这么多窗口的创建问题。

+0

Rory McCrossan感谢你能解释一下,如果条件 –

+0

这与您之前的'http://'检查相同,只是针对'https://'修改。这意味着'如果字符串的前7个字符不是'http://',并且前8个字符不是'https://'.. –

1

你必须在你的,如果条件添加逻辑https-

if(s.substr(0,7)!='http://' && s.substr(0,7)!='https:/') 

:)

1

试试这个

function open_all() { 
     debugger; 
     var urls = document.getElementById("list_urls").value; 
     var urls = urls.split('\n'); 
     var totalno = urls.length; 
     var s; 
     for (var i = 0; i < totalno; i++) { 
      s = urls[i]; 
      if (s) { 
       if (s.substr(0, 7) != 'http://' && s.substr(0, 8) != 'https://') 
        s = 'http://' + s; 
       window.open(s); 
      } 
     } 
     return false; 
    }