我需要加载一个外部jsp页面,该页面将包含定义了函数的脚本标记。我必须将jsp页面的一部分加载到请求页面的div中,并将脚本加载到页面中并在当前页面中调用这些脚本函数。
我尝试过使用带有GET类型的jquery ajax调用和async:false。但是当将返回的数据加载到当前页面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'});
请指导我,让我知道我做错了什么,并帮助我解决这个问题并让我的要求有效......
答案 0 :(得分:0)
您是否发现脚本的哪一行会触发错误?
为什么要初始化dialogData?特别是那里!为什么不:
$('#second_popupcontent').html(data);
dialogData = $('#second_popupcontent .portlet-content');
也许你的问题来自这里......
此外,添加额外的选择器如'body div#second_popupcontent'是一种不好的做法; '#second_popupcontent'足够且通常更快。