如何在Ajax请求中包含Javascript脚本标记?

时间:2011-10-17 18:50:37

标签: javascript ajax mootools

我正在使用MooTools 1.4。如何在我的页面上动态包含脚本标记?以下Ajax resetset的响应应该包含标签......

window.addEvent('domready', function() {
    $('submit').addEvent('click', function(event) {
        var filename = $('filename').value;
        //prevent the page from changing
        event.stop();
        //make the ajax call
        var req = new Request({
            method: 'get',
            url: 'renderpage?id=' + escape(filename),
            data: { },
            evalScripts: true,
            onRequest: function() { 
                // on request
            },
            onComplete: function(response) {
                $('content').set('html',response);
                // Add the Ajax call where we save the data.
                ...
                });
            }
        }).send();
    }); 
});

但是当我看到回应时,他们就被剥夺了。我希望将它们包含在内并进行评估。我怎么能这样做?

3 个答案:

答案 0 :(得分:2)

使用Request.HTML

    var req = new Request.HTML({
        url: 'renderpage?id=' + escape(filename),
        update: $('content'),
        onRequest: function() { 
            // on request
        }
    }).get();

答案 1 :(得分:0)

您可以将整个响应作为JS返回,并评估响应;

然后你可以将html设置为响应中的某个变量,比如

var new_html='(html)';

然后你可以这样做

$('content').set('html',new_html);

答案 2 :(得分:-1)

传递给onComplete的参数是:

nodeTree, xhr, responseHTML, responseScripts

所以:

new Request.HTML({
  // ...
  onComplete : function(nodeTree, xhr, responseHTML, responseScripts) {
    eval(responseScripts);
  }
});