2

asp.net Webアプリケーションで非常に重大な問題に直面しています。この問題では、1つのページを開発し、Jqueryダイアログ内でiframeを使用してそのページをロードしています。IEでそれを開こうとすると、「未定義のオブジェクト」に関連するエラーとそれに続く多くのエラーが発生しました。調査を行った後、IEの場合、この回答に従ってダイアログを開いた後にiframesrcを割り当てる必要があります。IEで開いたときの解決策は、そのpopup.finalコードを閉じようとすると、同じエラーが発生します。次のようになります。

<link href="../../App_Themes/Default/jquery-ui.css" rel="stylesheet" type="text/css" />  
    <script src="../../Scripts/jquery.min.js" type="text/javascript"></script>
    <script src="../../Scripts/jquery-ui.min.js" type="text/javascript"></script>
    <script src="../../Scripts/jquery.preload.js" type="text/javascript"></script>
    <script type="text/javascript" src="../../Scripts/js/ui/ui.core.js">

 <script language="javascript" type="text/javascript">
function openDialog() {

            var $dialog = jQuery('#dialog');
            $dialog.dialog({
                autoOpen: false,
                resizable: false,
                title: 'Register App',
                modal: true,
                height: 500,
                width: 950,
                show: 'puff',
                hide: 'puff',
                close: function (event, ui) {
                    $('#iframeManageApp').attr('src', 'about:blank');
                    $dialog.dialog('close');
                    $dialog.dialog('destroy');
                    if (isReload) {
                        if (isAdd)
                            $("#" + '<%=hdnIsApplicationAdd.ClientID %>').val("true");
                        else
                            $("#" + '<%=hdnIsApplicationAdd.ClientID %>').val("");

                        window.location.reload();
                    }

                },
                open: function (event, ui) {
                    $('#iframeManageApp').attr('src', 'RegisterApplication.aspx');
                }
            });

            $dialog.dialog('open');
        }
    </script>

そして、以下のようにダイアログdiv

<div id="dialog" style="display: none; padding-left: 10px; overflow: hidden;">
        <iframe id="iframeManageApp" height="450px" width="910px" 
            frameborder="0" style="overflow: hidden;"></iframe>
    </div>

誰かがこのタイプの問題の解決策を見つけたら私を助けてください。この問題に関してIEで何を問題にする必要がありますか?また、誰かがこれに対する代替の解決策を持っているかどうか私に提案してください。

前もって感謝します。

アップデート:

いくつかの調査の結果、Iframeページ内の同じjs参照が原因でこれが問題であることがわかりました。RegisterApplication.aspxページの代わりにTest.aspxを変更したところ、IEでエラーは発生しませんでしたが、その中に同じjsを追加すると、同じ動作が発生しました。

<script src="../../Scripts/jquery.min.js" type="text/javascript"></script>
4

1 に答える 1

3

ダイアログオプションを変更してこの問題を解決しましたが、これが起こった本当の原因を見つけることができませんでした?

以下のように、ダイアログとダイアログの最終コードから hide='puff' オプションを削除しました

        $dialog.dialog({
            autoOpen: false,
            resizable: false,
            title: 'Test',
            modal: true,
            height: 500,
            width: 950,
            show: 'puff',
            close: function (event, ui) {
               -----
               -----

近いイベントでは、非表示効果のために jquery.min.js を見つけようとすると思いますが、それが私の問題の原因であるはずです。しかし、誰かがこのことを再現したい場合は、次の方法で行うことができます

1)私の質問に従ってダイアログコードを開きます(closeイベントのリロードセクションを無視します)
2)別のテストページを作成し、その中にjquery.min.jsの参照を追加します
3)javascriptのopendialog関数でiframe内にテストページをロードします

于 2012-07-03T05:44:27.607 に答える