在将外部jsp加载到当前页面DOM时,在jquery js中获取错误

时间:2012-04-24 04:53:37

标签: javascript jquery ajax jsp

我需要加载一个外部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'});

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

1 个答案:

答案 0 :(得分:0)

您是否发现脚本的哪一行会触发错误?

为什么要初始化dialogData?特别是那里!为什么不:

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

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

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