我的asp.net Web应用程序面临非常严重的问题,我在其中开发了一个页面,并在Jquery对话框中使用iframe加载该页面。因为当我试图在IE中打开它然后在我进行研究后发现对于IE我们需要在打开对话框之后根据此{{3}分配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>
答案 0 :(得分: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里面的测试页面