none
UAC環境でのmailtoの挙動について RRS feed

  • 質問

  • Win7(x64),IE8,UACあり環境にて、以下の親画面を開き同時に表示されるサブウィンドウのmailtoのリンクをクリックすると

    メーラーが起動されるのではなく、サブウィンドウ(test.html)が閉じるだけとなってしまいます。

    UACなし又はブラウザを管理者として実行して上記の操作を行うと通常のmailtoの挙動通り、メーラーが起動され、メール本文も表示され、

    サブウィンドウ(test.html)も閉じません。

    現時点でわかっていることは、サブウィンドウのbodyタグ属性に、onunloadがあると上記事象が発生することのみ

    わかっております。onunloadが必要な理由としては、このサブウィンドウ(test.html)からさらにサブウィンドウを開いているため、

    このサブウィンドウ(test.html)が閉じられるときは、開いたサブウィンドウがあればそれも閉じる処理を行うためにハンドリングしております。

    UACの有無に関わらず、このサブウィンドウ(test.html)から通常のmailtoの挙動をさせるには、どのようにしたら良いでしょうか?

    ご教示の程、何卒よろしくお願い致します。

    下記、プログラムは必要最低限のものとさせていただいてます。

    親画面(testView.html)

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <title>A</title>
        <script type="text/javascript" src="A.js"></script>
    </head>
    <body class="XX" onload="AView();">
    </body>
    </html>

    子画面(test.html)

    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
        <title>A</title>
        <script type="text/javascript" src="A.js"></script>
    </head>
    <body class="XXX" onunload="AOnUnload();">
    <a href="mailto:?body=http://abc.co.jp" >MailTO</a>
    </body>
    </html>

    JS(A.js)

    //アンロード処理
    function AOnUnload() {
        //test.htmlから開いた子画面が存在する場合、子画面を閉じる
    }
    //子画面表示
    function AView() {
        var styl, wt, vid, sesid, wobj, url;
        styl = "width=780,height=760,resizable=yes,status=yes,scrollbars=yes,left=100,top=100";
        wt = "A";       
        url = "test.html";
        wobj = window.open(url, wt, styl);
    }

    2012年8月14日 8:21

すべての返信

  • ここは ASP.NET のフォーラムですが、質問を見た限り ASP.NET とは関係なさそうに思えますが・・・

    2012年8月14日 13:00
  • 返信ありがとうございます。

    挙動から推察すると、onunloadのハンドリングは、UACの影響を受けることから、

    onbeforeunloadイベント時に、onunload時に行おうとしていた処理を行うことにして、UACの有無に関わらず

    mailtoの挙動を行うことができました。

    問題等ございましたら、ご連絡いただきたく思います。

    2012年8月15日 1:39
  • > 問題等ございましたら、ご連絡いただきたく思います。

    onbeforeunload はブラウザ依存という点に要注意です。

    今回の話は、単純に OS とブラウザの問題(即ち、クライアント側
    に限った問題)なので、ASP.NET としては何もないです。

    2012年8月19日 7:42