所以我有一个可以双向加载的PHP页面。它可以使用includes()直接嵌入到页面中,也可以使用AJAX根据用户需求加载第一页。我的问题来自这些代码:
echo "<script>";
echo "we_start_slide('" . $we_gallery['gallery_name'] . "', " . $we_gallery['display']->output() . ", " . $we_gallery['settings']['slide_time'] . ");";
echo "we_slide_show_btns('" . $we_gallery['gallery_name'] . "');";
echo "</script>";
这适用于直接负载。但是,正如您所知,AJAX在加载时不会运行javascripts。因为代码需要只有PHP脚本知道的动态变量,所以我不能只调用AJAX函数中的函数。我想知道是否有任何方法告诉JavaScript在加载后运行该脚本标记的内容?
答案 0 :(得分:0)
将js脚本放在ajax done函数
中$.ajax({
}).done(function() {
<?php
echo "<script>";
echo "we_start_slide('" . $we_gallery['gallery_name'] . "', " . $we_gallery['display']->output() . ", " . $we_gallery['settings']['slide_time'] . ");";
echo "we_slide_show_btns('" . $we_gallery['gallery_name'] . "');";
echo "</script>";
?>
});
此处的参考是jquery ajax api http://api.jquery.com/jquery.ajax/
有几个选择。注意counselledCount:txt是一个post变量,所以在处理你的ajax请求的页面上用$_POST["counselledCount"]
访问它
这是另一个例子:
$.post("../includes/process-results.php", {counselledCount: txt, currentPageReset: "yes"}, function(result){
showAjaxResult(result);
});
现在不是使用ajax,而是在处理ajax请求的页面上发送该请求,然后将请求发送回脚本。
$request = "<script>";
$request .= "we_start_slide('" . $we_gallery['gallery_name'] . "', " . $we_gallery['display']->output() . ", " . $we_gallery['settings']['slide_time'] . ");";
$request .= "we_slide_show_btns('" . $we_gallery['gallery_name'] . "');";
$request .= "</script>";
答案 1 :(得分:0)
所以答案是eval()
eval(document.getElementById('slide_start').innerHTML);
通过向脚本标记添加id,我可以将脚本拉入回调函数,然后使用eval()执行它感谢A. lau指出我正确的方法。