javascript - iframe 第二次不呈现内容

标签 javascript jquery ajax iframe asp.net-mvc-5

我在主视图的 Iframe 中通过 ajax 呈现部分 View 。它在本地运行良好,但在第一次发布其作品后第二次清除 iframe 主体

这是我的代码:

  $('#editFaxdialog').dialog({
        autoOpen: false,
        title: 'Edit PDF',
        height: 'auto',
        width: '80%',
        position: ['top', 50],
        draggable: false,
        show: 'blind',
        hide: 'blind',
        modal: true,
        open: function (event, ui) {
            $.ajax({
                url: '@Url.Action("EditPdf", "Fax")',
                type: 'GET',
                cache:false,
                success: function(data){
                    var frameSet = document.getElementById("editFaxFrame");
                    var iframedoc = frameSet.document;

                    if (frameSet.contentDocument)
                        iframedoc = frameSet.contentDocument;
                    else if (frameSet.contentWindow)
                        iframedoc = frameSet.contentWindow.document;

                    if (iframedoc){
                        iframedoc.open();
                        iframedoc.writeln(data);
                        iframedoc.close();
                    }
                },
                error: function () {
                    window.location.href = '@Url.Action("Index","Error")';
                }
            });
        },
        close: function (event, ui) {
            $("#editFaxFrame").attr("src", '');
        }

    });

最佳答案

经过大量研发后我解决了这个问题,我将 Settimeout() 函数放在 ajax 成功上

 $('#editFaxdialog').dialog({
        autoOpen: false,
        title: 'Edit PDF',
        height: 'auto',
        width: '80%',
        position: ['top', 50],
        draggable: false,
        show: 'blind',
        hide: 'blind',
        modal: true,
        open: function (event, ui) {
            $.ajax({
                url: '@Url.Action("EditPdf", "Fax")',
                type: 'GET',
                cache:false,
                success: function(data){
                    setTimeout(function () {
                    var frameSet = document.getElementById("editFaxFrame");
                    var iframedoc = frameSet.document;

                    if (frameSet.contentDocument)
                        iframedoc = frameSet.contentDocument;
                    else if (frameSet.contentWindow)
                        iframedoc = frameSet.contentWindow.document;

                    if (iframedoc){
                        iframedoc.open();
                        iframedoc.writeln(data);
                        iframedoc.close();
                    }
},400);
                },
                error: function () {
                    window.location.href = '@Url.Action("Index","Error")';
                }
            });
        },
        close: function (event, ui) {
            $("#editFaxFrame").attr("src", '');
        }

    });

关于javascript - iframe 第二次不呈现内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24198776/

相关文章:

javascript - 跨站点 xmlhttp 请求返回状态 0

javascript - 当用户滚动到元素上方 50px 时向元素添加类?

javascript - 有没有一种方法可以设置c3.js中的x和y轴样式?

javascript - jQuery:我需要在 $(document).ready() 中调用 $ ("img".lazyload() 吗?

javascript - 如何禁用 jQuery UI 弹出窗口上的按钮

javascript - Jsonp跨域ajax

javascript - Angular 2 绑定(bind)到计算 getter 会出现调试错误

c# - ASP.NET MVC 3 中的更新面板

jquery - 当我使用 .ajax 和 JSONP 时,如何处理失败的 JSON 请求?

javascript - json 请求在 IE 中不起作用并出现缓存问题