Firefox 不在 jquery .load() 上显示 iFrame 内容
Posted
技术标签:
【中文标题】Firefox 不在 jquery .load() 上显示 iFrame 内容【英文标题】:Firefox not displaying iFrame contents on jquery .load() 【发布时间】: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 秒时,它无法以与功能一相同的方式显示内容。
【问题讨论】:
【参考方案1】:由于某种原因,.show()
并非始终适用于 Firefox。
使用此代码显示 div:
$("#reportPreviewDiv").css('display', 'block');
【讨论】:
以上是关于Firefox 不在 jquery .load() 上显示 iFrame 内容的主要内容,如果未能解决你的问题,请参考以下文章
jQuery:代码在 Firefox 中有效,但在 IE 中无效