我对 JQuery 相当陌生。我正在使用对话框弹出一个显示来自外部站点的页面的窗口。
<script type="text/javascript">
$.fx.speeds._default = 400;
jQuery.support.cors = true;
$(function ()
{
$("#cmdLaunchInDiv").click(function ()
{
$("#dialog-modal").dialog({
autoOpen: false,
height: 845,
width: 820,
show: "scale",
hide: "scale"
});
$.ajax({
url: 'http://www.mycompany.com/geturl/?userid=' + document.getElementById("txtUserId").value,
dataType: 'json',
success: function (data)
{
$('#dialog-modal').html("<iframe id='iFr' style='height:800; width:800; overflow: hidden;' height='800' width='800' scrolling='no' src='" + data + "'>");
}
});
$("#dialog-modal").dialog("open");
return false;
});
});
<div id="dialog-modal" title="My Page" >
</div>
Ajax 调用根据用户 ID 获取我要加载的 URL。如果我不使用 jQuery.support.cors = true; Ajax 调用不起作用,我不确定为什么该行修复了该问题,但我的搜索表明它会。
问题是当我第一次运行页面时一切正常。我输入我的用户 ID,单击 div 打开的按钮,页面按预期加载。然后我使用对话框右上角的内置关闭 X 关闭对话框,并且框按预期关闭。但是,如果我尝试再次打开对话框,我会在 JQuery-1.8.0.js 中收到错误
Microsoft JScript 运行时错误:“数组”未定义
// Save a reference to some core methods
core_push = Array.prototype.push, //<=== This line
core_slice = Array.prototype.slice,
core_indexOf = Array.prototype.indexOf,
core_toString = Object.prototype.toString,
core_hasOwn = Object.prototype.hasOwnProperty,
我找不到任何东西来帮助我找出问题所在,并且多次重写了我的 Jquery。
更新:这个错误在 IE9 中。在 Chrome 和 Firefox 中,对话框可以正确打开和关闭,但除非我尝试在同一域中加载页面,否则不会显示内容。
谁能指出我正确的方向?
非常感谢
弗雷德