【问题标题】:Firefox not displaying iFrame contents on jquery .load()Firefox 不在 jquery .load() 上显示 iFrame 内容
【发布时间】:2015-02-27 02:51:52
【问题描述】:

我遇到了一个非常奇怪的情况。我会尽我所能解释发生了什么。

我有一个包含 iFrame 的局部视图。因此,在我的主页上,我进行了 ajax 调用以获取部分视图。

main.cshtml:

<div id='reportPreviewDiv'></div>

部分视图.cshtml:

<iframe id="testIFrame">
    This content is built with https://github.com/ilich/MvcReportViewer/
</iframe>

main.js:

$.ajax({
    url: reportUrl,
    data: { reportParameters: parameters },
    method: 'POST',
    success: function (data) {
        $("#reportPreviewDiv").html(data);

        // Function One
        $("#testIFrame").load(function () {
            // Do some extra stuff
            $("#reportPreviewDiv").show();
        });

        // Function Two
        $("#testIFrame").load(function () {
            // Do some extra stuff
        });
        $("#reportPreviewDiv").show();
    }
});

我们的目标是等到 iFrame 被加载后,其他一些功能才会发生。

Function One 适用于 IE 和 Chrome(应如下所示:http://i.imgur.com/5PW6ZeR.png),但在 Firefox 中则如下所示(http://i.imgur.com/sOtz6Kb.png)。

如果我放

$("#reportPreviewDiv").show();

在函数二中的 .load() 之外,它在 Firefox 上运行良好,但在 Chrome 和 IE 上略有延迟(因为它在完成 .load() 中的功能之前显示 reportPreviewDiv。

另外一件有趣的事是我包裹了

$("#reportPreviewDiv").show();

在 .load() 之外的 setTimeout 中,当我将超时设置为超过 1.5 秒时,它无法以与功能一相同的方式显示内容。

【问题讨论】:

    标签: jquery firefox iframe


    【解决方案1】:

    由于某种原因,.show() 并非始终适用于 Firefox。

    使用此代码显示 div:

    $("#reportPreviewDiv").css('display', 'block');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-10
      • 2012-07-09
      • 1970-01-01
      • 1970-01-01
      • 2012-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多