2011-12-30 6 views
1
function SendInfo(href) { 
    var subject= "Some information"; 
    var body = "I thought you might find this information interesting:\r\n\r\n<"; 
    body += document.location; 
    body += ">"; 
    var uri = "mailto:?subject="; 
    uri += encodeURIComponent(subject); 
    uri += "&body="; 
    uri += encodeURIComponent(body); 
    win = window.open(uri); 
    win.close(); 
} 

FF、Chrome、IE9では、新しいタブ/ウィンドウが必要に応じて閉じます。mailto uri - javascript window.openして閉じてもIE8で開いたままになる

IE8以下では、新しいウィンドウが開き、セキュリティ警告が表示されます。

これらの問題を防ぐためにこれにアプローチするより良い方法はありますか?

jsbin:http://jsbin.com/itazab

+0

を行う示唆); 'これの前にwin.close(); ' – noob

+0

私はまた、いくつかの掘り出しを行い、それが発行された(異なるゾーンなど)ローカルで開発するときに発生する可能性があることを発見しました – Jason

答えて

3

それはあなたがクローズする必要があるウィンドウを開くことが最適ではありません。 あなたはこのようにsetTimeoutを使用することができます警告を取得しなかった場合:

win = window.open(uri); 
setTimeout(function() { win.close();},1000); 

を代わりに私はあなたがこの `win.open( ""、 "_self" を、 "" を入れ、この

function SendInfo(href) { 
    var subject= "Some information"; 
    var body = "I thought you might find this information interesting:\r\n\r\n<"; 
    body += href; // or document.location; 
    body += ">"; 
    var uri = "mailto:?subject="; 
    uri += encodeURIComponent(subject); 
    uri += "&body="; 
    uri += encodeURIComponent(body); 
    return uri; 
} 

<a href="#" onclick="this.href=SendInfo(location.href)">Tell a friend</a> 
+0

これらの変更は実際に何も返しませんでした - Outlookは開かず、エラーをスローしませんでした – Jason

+0

'onclick'の代わりに' onmousedown'を試してください – noob

+0

更新を見る..... – mplungjan

関連する問題