1

我对 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 中,对话框可以正确打开和关闭,但除非我尝试在同一域中加载页面,否则不会显示内容。

谁能指出我正确的方向?

非常感谢

弗雷德

4

0 回答 0