php - 使用 ajax 加载迷你界面

标签 php javascript jquery ajax

我正在为一些网站创建 CMS 的修订版本。

在这个重新设计的版本中,左侧有一个列表,显示您可以管理的不同部分(文本、照片库等)。在右边,当用户选择一个项目时,我想通过 AJAX 加载适当的 UI。

我首先简单地向各种文件发出请求,然后将 HTML 推送到一个 div 中,如下所示:

var map;
$(document).ready(function() {
    map = {"text":"txt_interface.php","gallery":"gallery_interface.php"};

    $('#left_pane li').click(function() {
        var id = $(this).attr('id');
        if (map[id].length) {
            // show loading stuff etc.
            var url = 'ajax/'+map[id];
            $.ajax({
                url: url,
                type: 'GET',
                success: function(res) {
                    $('#right_content').html(res);
                }
            });
        }
    });
});

然而,我随后意识到某些页面需要外部 JS(例如 tinyMCE)。因此,我尝试了各种解决方案,例如将 js 引用单独传递到 JSON 中并使用 $.getScript,但这一切都变得过于复杂。

最好不使用框架,实现此目的的最简单方法是什么?

最佳答案

您可以将 JavaScript 放在一个 block 中,您可以在 AJAX 回调函数和 eval 中将其拉出。它(我知道谷歌做了类似的事情来推迟对某些 JavaScript 的解析):

        $.ajax({
            url: url,
            type: 'GET',
            success: function(res) {
                var tmp    = res.split("{script}"),
                    code   = tmp[1].split("{/script}")[0];
                eval(code);
                $('#right_content').html(tmp[0]);
            }
        });

这是一个 jsfiddle:http://jsfiddle.net/4HReW/

这假设你把 {script}/{/script}代替常规 <script>/</script>标记,并且 JavaScript block 出现在通过 AJAX 提取的内容的末尾。

关于php - 使用 ajax 加载迷你界面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8404120/

相关文章:

PHP 调用 Expect 脚本(通过 SSH 运行脚本,但使用 PHP 调用)

php - Laravel 5 文件下载无效

Javascript - 捕获对对象属性的访问

javascript - 使用 JavaScript 从文件夹/子文件夹动态加载所有图像

javascript - 在 Node js中加载本地jquery.js文件

jquery - typescript 不编译 e.currentTarget.files

php - PDO 保持 mysql 连接多长时间?

php - 从 Zend Radio 表单元素中删除一个选项

javascript - 设置输入字段的值

jquery - ASP :dropdown that is populated with jquery ajax doesnt pass selected value to server side when saving form