0

我需要加载一个外部 jsp 页面,该页面将包含定义了函数的脚本标签。我必须将jsp页面的一部分加载到请求页面的div中,并将脚本加载到页面中并在当前页面中调用这些脚本函数。

我尝试使用带有 GET 类型和 async:false 的 jquery ajax 调用。但是当将返回的数据加载到当前页面 DIV 时,在 globalEval 函数中出现 jquery js 错误。

萤火虫指向jquery js源的这一部分..

// Evaluates a script in a global context
// Workarounds based on findings by Jim Driscoll
// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
    globalEval: function( data ) {
        if ( data && rnotwhite.test( data ) ) {
            // We use execScript on Internet Explorer
            // We use an anonymous function so that context is window
            // rather than jQuery in Firefox
            ( window.execScript || function( data ) {
                window[ "eval" ].call( window, data );
            } )( data );
        }
    },

下面是我正在使用的代码片段..

$.ajax({url:'/web/guest/campaignreports',success:function (data) {

                    alert('hi');




                    dialogData = $(data).find('.portlet-content');

                    $('body div#second_popupcontent').html(data);

                    Demographicshome_charts();
                    $('body div#second_popupcontent').dialog({title: "Pop Up",width: 600,modal: true,
                        buttons: {
                            "Cancel":function(){
                            $(this).dialog('close');
                            }
                            }
                        });

                    },cache:false,async:false,type:'GET'});

请指导我,让我知道我做错了什么,并帮助我解决这个问题并让我的要求工作......

4

1 回答 1

0

您是否找到脚本的哪一行触发了错误?

为什么要初始化 dialogData?尤其是那里!为什么不:

$('#second_popupcontent').html(data);
dialogData = $('#second_popupcontent .portlet-content');

也许你的问题来自这里......

此外,添加额外的选择器(例如 'body div#second_popupcontent'; )是一种不好的做法。'#second_popupcontent' 就足够了,而且通常更快。

于 2012-04-24T05:30:58.803 回答