2

我的 asp.net Web 应用程序面临着非常关键的问题,我在其中开发了一个页面并在 Jquery 对话框中使用 iframe 加载该页面。因为当我尝试在 IE 中打开它时,我遇到了与“未定义对象”相关的错误以及许多后续错误,然后在我进行研究后发现对于 IE,我们需要在打开对话框后根据这个答案分配 iframe src ,我得到了现在在 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 引用导致的问题。我刚刚更改了 Test.aspx 代替 RegisterApplication.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)根据我的问题打开对话框代码(忽略关闭事件中的重新加载部分)
2)创建另一个测试页面并在其中添加jquery.min.js的引用
3)在javascript的opendialog函数中加载iframe内的测试页面

于 2012-07-03T05:44:27.607 回答