2016-05-17 11 views
0

インサイド "a.aspx" のコードは基本的に次のようになります。IE 11のiFrame [UPDATE] URLの問題を欠落している

... 
<iframe id="b.aspx" frameborder="0" scrolling="no" src=""></iframe> 
... 

IFRAMEは空SRCとにrunat = "サーバー"、および分離コードで(C#)私たちが持っています

idOfIFrame.Attributes["src"] = "..." 

問題はiframeがないことです。ビューソースでは、コードビハインドによって追加された「有効な」src URLがあることがはっきりとわかります。しかしiframeがあるページは空です。

これは何ヶ月も問題なく実行されました。ユーザーがIE11をアップグレードするまで。

IE 11.0.9600.18097 11.0.25(KB3100773)、IE 11.0.9600.18314 11.0.31(KB3154​​070)です。これは私がアップグレードし、今私はdevのマシン上の欠落したiframeを再現することができるので、問題を引き起こしているかもしれないようです。

私は少し時間をかけてURLを再生しましたが、新しいブラウザタブに内側の小さなiframeを開いていました。入力してください、まだ空です。どこにコードを書くべきか、何もありません。

私はのaspxファイルでこれを持っている:古いIEのバージョンで

<div> 
<asp:GridView> 
<Columns> 
<asp:TemplateField> 
<itemtemplate> 
<table> 
... 

、それはとしてレンダリング:

<div> 
<div> 

</div> 
</div> 
:新しいIEのバージョンでは

<div> 
<div> 
    <table></table> 
</div> 
</div> 

、それはとしてレンダリング

問題の原因は何ですか? 2台のコンピュータで同じページを開くことができます(互換性の設定はすべて同じです)。もう1つは動作しますが、私は動作しません。

[UPDATE]

私は、これはURLの問題であることが分かりました。 私はこのようなC#でURLを構築しています:

ifr.Attributes["src"] = "../../xyz.aspx?Module=ToDo&Allow=0&isOk=" + isOk 

ビューのソースはこれを示していますIEのこのバージョンは、もはやURL-s内の&amp;を認識しないよう

"../../xyz.aspx?Module=ToDo&amp;Allow=0&amp;isOk=" + isOk 

は思えます。正直なところ、私はMS IE 11バグだと思います。私の変数はURL QueryStringParameterであるIDではなく、デフォルトでゼロに設定されています。

答えて

0

私は上記の投稿のように、私は問題を発見した([UPDATE]セクションを参照してください)

私の一時的な修正は、この単純です:

document.getElementById('<%=ifr.ClientID%>').src = document.getElementById('<%=ifr.ClientID%>').src; 

はい、私はiFrameをリロードするJSの事を追加しました。基本的に、Iframeは現在2回ロードされています(1度はID 0、1度は正しいID)。これはこれを修正する最も美しい方法ではありませんが、これはMSIE11の問題であると確信しています今のところ。

関連する問題