Php 用ajax加载迷你接口
我正在为一些网站制作一个CMS的修订版 在这个重新设计的版本中,左侧有一个列表,显示您可以管理的不同部分(文本、照片库等)。在右边,我想在用户选择项目时通过AJAX加载适当的UI 我一开始只是向各种文件发出请求,然后将HTML放在一个div中,如下所示:Php 用ajax加载迷你接口,php,javascript,jquery,ajax,Php,Javascript,Jquery,Ajax,我正在为一些网站制作一个CMS的修订版 在这个重新设计的版本中,左侧有一个列表,显示您可以管理的不同部分(文本、照片库等)。在右边,我想在用户选择项目时通过AJAX加载适当的UI 我一开始只是向各种文件发出请求,然后将HTML放在一个div中,如下所示: var map; $(document).ready(function() { map = {"text":"txt_interface.php","gallery":"gallery_interface.php"}; $('
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)。因此,我尝试了各种解决方案,例如在JSON中单独传递js引用,并使用$.getScript
,但这一切都变得过于复杂
最好不使用框架,实现这一点最简单的方法是什么?您可以将JavaScript放在一个块中,然后从AJAX回调函数中拉出,然后
评估它(我知道Google做了类似的事情来延迟对某些JavaScript的解析):
下面是一个JSFIDLE:
这假设您将{script}
/{/script}
替换常规的
/
标记,并且JavaScript块位于通过AJAX拉入的内容的末尾。您能给我们一些具体的示例,说明JS需要运行什么以及如何运行吗?似乎你可以在主页中拉入js文件,然后在拉入正确的内容时运行你必须运行的内容,但如果没有具体的例子,就很难给出方向。@BenL在这个具体的例子中,我在问题中给出了我需要tinyMCE源文件(外部),以及在tinyMCEtinyMCE.init()上加载内容后要调用的函数代码>-我在该调用中传递了一些参数。这很好-虽然我听说过eval的一些不好的地方:/-它也不能解决外部JSF的问题,或者现在我只是在主页中包含我需要的所有外部脚本-但是这对于加载内联脚本来说非常好-谢谢:)
$.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]);
}
});