none
IE11であるASPサービスログイン時に意図せず別タブが起動する事象について RRS feed

  • 質問

  • 初めまして。

    Microsoftコミュニティで質問したところ、
    こちらのサイトを紹介いただきました。

    お手数ですが下記に関し、どなたか知恵をお貸しください。

    IEを起動後、ASPサービスにログインするため、
    「ユーザID/パスワード」を入力してログインボタンを押下すると、
    通常であれば、ログイン画面と同じ画面が更新されて次の画面が表示されるが、
    一部の端末では、ログイン画面とは別の新たなタブが起動して次の画面が
    表示される事象が発生しており困っています。

    別タブが起動するときの処理の詳細については下記のとおりと
    なりますので、ご確認いただけますでしょうか。

     【実施したいこと】
    frameに対して画面遷移を行いたい

    【問題現象】
     下記のような処理で、表示画面の遷移を
    frameをtargetにして実施したいと思っています。

    <HTML>
         <HEAD>
         <TITLE>TestPage</TITLE>
         <META content=IE=5 http-equiv=X-UA-Compatible>
         <META content=0 http-equiv=Expires>
         <META content="text/html; charset=UTF-8" http-equiv=Content-Type>
             <SCRIPT language=JavaScript>
             window.onload = function() {
                 var index = document.URL.lastIndexOf("/", document.URL.length);
                 var APP_FULL_URL = document.URL.substring(0, index);
                 document.forms[0].target = "testFrame";
                 document.forms[0].submit();
             }
             </SCRIPT>
             <FORM method=post name=TestForm action=/TestAction.do target=test>
             </FORM>
         </HEAD>
         <FRAMESET title=Test frameBorder=0>
             <FRAME src="dummy.html" name=testFrame>
         </FRAMESET>
     </HTML>


    上記が処理イメージでTestAction後の画面遷移となりますが、
    端末によってはTestAction後の画面がframe(testFrame)へ表示せず、
    別のタブでTestAction後の画面が表示されてしまいます。
    submit時のtarget指定が有効でない、もしくはtargetにアクセスできておらず、
    別のタブで表示となっているかと思われます。

    【知りたいこと】
    frameに対して、一部の端末でtarget指定が効かない
    原因および解決方法があればそちらもご教示願えないでしょうか。

    【参考情報(事象の詳細)】
    ■発生事象
     IEを起動後、ASPサービスにログインするため、
     「ユーザID/パスワード」を入力してログインボタンを押下すると、
     通常であれば、ログイン画面と同じ画面が更新されて次の画面が表示されるが、
     一部の端末では、ログイン画面とは別の新たなタブが起動して次の画面が表示される。

     ※補足
      ・正常に動作する端末と事象が発生する端末が存在している。
       (14台の端末で問題が発生している(割合としては約1/4))
      ・正常に動作する端末と事象が発生する端末の下記設定は同一設定。
         「あるサービスのURLを信頼済みサイトに登録済」
         「IE設定(セキュリティタブのセキュリティ設定、詳細タブの設定)」
         「タブブラウズの設定」

     ⇒ログイン後の画面が別タブで表示されると、
      サービスの機能が正常に動作しなくなるため、
      別タブが起動する事象を解決させる必要があります

    ■発生時期
     2017年11月上旬から問題事象が確認され始めた。

    ■実施した対処および確認した内容
     下記を実施するも改善せず。
      ・キャッシュクリア
      ・IE設定のリセット
     
     下記に関し確認したが、正常動作端末と事象発生端末とで差異無は無かった
      ・ウィルス対策ソフトとそのバージョン
      ・更新プログラム
       ⇒2017年11月以降にインストールされたプログラムに差異はなかった
        ※「Microsoft Office Professional Plus 2010」と
         「Microsoft Office Professional Plus 2016」には
         2017年11月以降にインストールされたプログラムがありましたが、
         Office関係のアップデートのため影響なしと判断。

    ■事象の発生条件
     ・あるサービスへのアクセス方法によって事象発生有無が下記のとおり異なる
      <問題事象が発生する端末>
       「https://」でアクセスした場合:問題事象が発生する
       「http://」でアクセスした場合 :問題事象は発生しない

      <問題事象が発生しない端末>
       「https://」でアクセスした場合:問題事象が発生しない
       「http://」でアクセスした場合 :問題事象は発生しない

        ※上記確認を行った端末については、
         「https://」と「http://」の両方とも信頼済サイトに登録済

     ・あるサービスのログイン画面で「F12」を押下して開発者ツールを起動すると、
      問題事象発生端末でも問題事象が発生しなくなる
      (一旦IEを閉じてしまうと問題事象が再発するので、再度「F12」の押下が必要となる)

     ・お客様のネットワーク環境を経由せず、モバイルルータを使用してサービスを
      利用した場合でも、別タブが起動する事象が発生する

    以上です。

    2018年3月12日 1:14

すべての返信

  • 原因としては書かれているように何らかの理由でフレームの名前が見つけられなくて新規タブか開かれているのでしょう。

    対処療法ですが、submit で post して遷移するのではなく、DOM 操作でナビゲートするという手は使えないのでしょうか? フォーム データーを POST しなければならないと難しいですが。

    後は、obsolute な frame ではなく iframe にしてみるとか。


    hebikuzure

    2018年3月13日 8:10
    モデレータ
  • hebikuzure様

    コメントいただきありがとうございます。

    >対処療法ですが、submit で post して遷移するのではなく、DOM 操作でナビゲートするという手は使えないのでしょうか?

    ⇒こちらの対処については検討中です。
     ※ただし影響範囲は広くなりそうです…

    >obsolute な frame ではなく iframe にしてみるとか。

    ⇒iframeに変えて事象発生端末で試してみましたが、
     別タブが起動してしまいました。


    DOM操作については詳細確認中ですが、
    DOM操作の対処ができない(できても別タブ起動問題が解消しない)可能性もあるため、
    上記以外に知見がございましたらコメントいただけますと幸いです。

    以上です。

    2018年3月16日 9:20
  • 一部の端末でのみ.....という状況から考えると処理のタイミング・処理時の(端末の)負荷などによって顕在化する問題のように思います。これは調査の非常に難しい部分です。

    小手先になりますが、document.forms[0] でフォームのオブジェクトを取得するのではなく、getElementById で取得してみるとか、コードを色々と変えてみるという手はあるかもしれません。


    hebikuzure

    2018年3月17日 7:16
    モデレータ