使用JQuery从Ajax响应中评估JS

Evaluating JS from an Ajax response using JQuery

本文关键字:评估 JS 响应 Ajax JQuery 使用      更新时间:2023-09-26

我有一个ajax表单,我想提交,和响应包含两个div,一个包含html内容和另一个包含动态javascript的脚本标签。

我提交的形式和接收响应ok,但我似乎无法得到javascript评估。我在里面放了一个警报,但它从来没有触发过。这是我用来提交表单的代码:

$("#categoryFormSubmit").live("click", function(event){
        event.preventDefault();
        var action = this.form.action + '?_eventName=' + this.name + 'Ajax';
        var params = $(this.form).serialize();
        var xhr = $.post(action, params, function(response) {
            var responseDom = $(response);
            var contentData = $('#content', responseDom).html();
            var javascriptData = $('#javascript', responseDom).html();
            $('#content').html(contentData);
            $('#javascript').html(javascriptData);
        }, 'html');
    }); 

在响应中,我试图将响应数据转换为DOM对象并解析出内容和javascript,并将它们插入到现有的DOM中。内容替换工作良好,但似乎没有与javascript一起工作。我不能让它求值。我该怎么做呢?我想我不应该像现在这样把它插入到DOM中

无需手动解析响应并分别将HTML和JS添加到页面中。jQuery将检测您试图添加到DOM的标记中的脚本,并处理它们的正确添加和执行。