我是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中,对话框会正确打开和关闭,但除非我尝试在同一个域中加载页面,否则不会显示内容。
有人能指出我正确的方向吗?
非常感谢
佛瑞德