7

IE10 でいくつかのスクリプトをテストしていましたが、ブラウザで属性の設定に問題があるようですcols

例:

parent.middle.document.getElementById("middle_frames").cols = "0,*"

これは SAF/Chrome/FF/IE7/IE8/IE9 では完璧に機能しますが、IE10 では機能しません。

助けてくれる人はいますか?


私のプロジェクトで私の問題を示すことはできませんが、問題を示すためにダミー スクリプトを作成しました。3 つのファイル (以下) を作成し、IE10 で実行して、[列の変更] ボタンをクリックします。IE10 を除くすべてのブラウザーで完璧に動作します。私の例では、doctype を使用し、doctype なしで試してみましたが、同じ問題が発生しました。

frameset_main.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
    <head>
        <title>Framesets</title>
    </head>
    <frameset id="framesets" cols="200,*" frameborder="0" border="0" framespacing="0">
        <frame src="frame1.html" name="frame1" id="frame1" scrolling="vertical" noresize="noresize">
        <frame src="frame2.html" name="frame2" id="frame2" scrolling="vertical" noresize="noresize">
    </frameset>
</html>

frame1.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
    <head>
        <title>Frame 1</title>
    </head>
    <body style="background-color: green;">
    </body>
</html>

frame2.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
    <head>
        <title>Frame 2</title>
        <!-- ONPAGE JAVASCRIPT -->  
        <script type="text/javascript">
        function dothis(){
            parent.document.getElementById("framesets").cols = "500,*";         
        }       
        </script>
    </head>
    <body style="background-color: red;">
    <div id="main_container" class="cls_main_container">
        <input type="button" id="btn_do_this" onclick="dothis();" value="change cols" />
    </div>
    </body>
</html>
4

8 に答える 8

5

IE10のバグのようです。これまでのところ解決策はありません。

http://social.msdn.microsoft.com/Forums/en-US/iewebdevelopment/thread/dd6bdecf-5751-4343-8cfd-bcfd7a14b144

于 2012-10-26T20:16:46.280 に答える
2

私は解決策を見つけました

(Microsoft が IE 10 のバグを解決するまでの回避策です):

作業した後.cols、フレームの再描画を強制するスクリプトを呼び出します。例では、結果は次のようになります。

parent.document.getElementById("framesets").cols = "500,*";
$('#frame2').forceRedraw(true);

スクリプトは次のforceRedraw場所にあります: Howto: Force a browser redraw/repaint , and need a link jQueryto work.

于 2012-12-05T10:36:01.177 に答える
1

IE10でも同じ問題が発生しました。IE8 と IE9 で動作し、IE11 プレビューでも動作します。したがって、IE10のバグのようです。

私の最も簡単な回避策は1行で、プラグインや追加機能は必要なく、次のようになります。

$('#framesetId').hide().attr('cols', '50,*').show();

このソリューションは IE10 で機能し、他のすべての最新ブラウザーでも引き続き機能します。

于 2013-08-16T09:21:07.973 に答える
0

私はこれにかなりの時間を費やしました。jQueryを必要とせずにこれを解決したかったのです。
次のコードを使用して、InternetExplorer10を列の変更で有効にします。

parent.document.getElementById("framesets").removeAttribute("cols");
parent.document.getElementById("framesets").setAttribute("rows", "500,*");
parent.document.getElementById("framesets").removeAttribute("rows");
parent.document.getElementById("framesets").setAttribute("cols", "500,*");
于 2013-03-06T14:31:55.927 に答える
0

cols 属性の更新行の後に次の行を追加して (jquery を使用)、この IE10 のバグを解決しました。

$('#yourframeid').height( $('#yourframeid').height()+1 ); $('#yourframeid').height( $('#yourframeid').height()-1 );

私はそれがあなたのために働くことを願っています...

于 2013-04-24T10:20:18.613 に答える
0

少し調査した後、この ie 10 バグを解決しました。「cols」属性のみが iframe で機能していないが、「rows」属性が機能していることがわかったので、行を追加するとうまくいきました。

var frameSet = document.getElementById("uxResultsFrameset");

if ($.browser.msie && $.browser.version == 10) 
     frameSet["rows"] = "100%"; //sets a row to overcome the issue in case of ie10 only

frameSet[orient] = "50%,50%";
于 2013-06-26T07:23:14.190 に答える