0

関数が定義されたスクリプト タグを持つ外部 jsp ページをロードする必要があります。jsp ページの一部を要求ページの div にロードし、スクリプトをページにロードして、現在のページでそれらのスクリプト関数を呼び出す必要があります。

GET タイプと async:false で jquery ajax 呼び出しを使用してみました。しかし、返されたデータを現在のページ DIV にロードすると、globalEval 関数で jquery js エラーが発生します。

firebug は、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 に答える