2016-04-22 81 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; 
    }