2016-06-15 10 views
-1

Ich versuche, das lokale Mail-Fenster mit dem Javascript window.location.href=mailto:<addresses> zu öffnen. Meine Adressen überschreiten jedoch die maximale Länge. Also schneide ich es in Stücke und schicke diese nach einer bestimmten Zeit ab. Bei der zweiten Verlagerung wird jedoch kein neues (Outlook-) Mailfenster geöffnet, wenn das erste geöffnet ist ... Gibt es eine Möglichkeit, dies zu umgehen? Oder gibt es eine andere/bessere Möglichkeit, mehrere Mail-Fenster auf dem lokalen Client zu öffnen?Zweite `window.location = mailto:` schlägt fehl, solange die erste noch offen ist

Jede Hilfe würde sehr geschätzt werden!

Der Code:

function Send_Mails(mails) { 

var timeout = 2000; 
var maxUrlCharacters = 1900; 
var currIndex = 0; 
var nextIndex = 0; 

if (mails.length < maxUrlCharacters) { 
    window.location = 'mailto:' + mails; 
    return; 
} 

do { 
    currIndex = nextIndex; 
    nextIndex = mails.indexOf(';', currIndex + 1); 
} while (nextIndex != -1 && nextIndex < maxUrlCharacters) 

if (currIndex == -1) { 
    window.location = 'mailto:' + mails; 
} else { 
    window.location = 'mailto:' + mails.slice(0, currIndex); 
    setTimeout(function() { 
       Send_Mails(mails.slice(currIndex + 1)); 
       }, timeout); 
} 

} 

Dies eröffnet die erste mailwindow richtig, aber der zweite ist nie so lange wie der erste ist offen geöffnet.

Mit freundlichen Grüßen, Hans

+0

Geben Sie bitte Ihren Code ein. – EnigmaRM

+0

Ihre Erklärung der Lösung, die Sie gewählt haben, ist verwirrend. Wir müssen Ihren Code sehen. – JAAulde

+0

@ EnigmaRM Code hinzugefügt in Frage ... – Hans

Antwort

0

Das Beispielskript unten für mich auf localhost

<button onclick="openmail()">Open mail</button> 
<script> 
    function openmail(){ 
     window.location.href="mailto:[email protected]" 
     setTimeout(function(){ 
      console.log('2nd email'); 
      window.location.href="mailto:[email protected]" 
     }, 3000); 
    } 
</script> 

funktioniert, wenn auf Fiddle, scheint es 75% der Zeit zu arbeiten (mit Ad-Blocker eingeschaltet) .

Es besteht das Risiko, dass Popup- und Werbeblocker, Anti-Virus-Software usw. zwangsweise das Öffnen mehrerer Mailto-Links blockieren.

+0

Danke für den Tipp über die Popup-Blocker, jede Idee, wo und wie ich das am besten überprüfen könnte? – Hans

+0

Versuchen Sie, Ihre Popup-Blocker zu entfernen und überprüfen Sie die Einstellungen Ihres Browsers für Popups. Beachten Sie jedoch, dass dies auf Ihren Client-Computern nicht möglich ist. Möglicherweise möchten Sie eine andere Implementierung in Betracht ziehen, wenn diese an Clients verteilt werden muss. – EnigmaRM