[英]call javascript in html block after load by Ajax
因此,我有一個可以以兩種方式加載的PHP頁面。 可以使用include()直接將其嵌入到頁面中,也可以使用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在加載時不會運行javascript。 因為代碼只需要PHP腳本知道的動態變量,所以我不能只調用AJAX函數中的函數。 我想知道是否有任何告訴JavaScript在加載后運行該腳本標記的內容?
將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 done,將您的腳本與請求一起發回。
$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>";
所以答案是eval()
eval(document.getElementById('slide_start').innerHTML);
通過在腳本標簽中添加id,我可以將腳本拉入回調函數,然后使用eval()執行該腳本。謝謝A. lau為我指出了正確的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.