對於長標題,我非常抱歉,但是它足以代表問題。Wordpress和AJAX - 使用AJAX加載內部頁面可以防止Javascript在內部頁面上運行
我試圖在我的WordPress網站上使用AJAX來加載內頁。然而,當我加載內部頁面時,我有這個功能工作,任何意味着加載並在這些內部頁面上運行的Javascript/jQuery沒有運行/加載。
有才能看到,然後重現問題的兩個步驟:
月1日 - 看看這個頁面:http://www.trekradio.net/dev/schedule - 此頁面包含一個時間表 - 天都的標籤,還當你點擊一個計劃項目,它打開一個jQuery彈出窗口。 Javascript也被用在右邊的欄中,在「支持我們」小部件中,下拉是基於JS的,並且還使用Twitter API腳本來加載twitter feed。正如你所看到的,所有的腳本都存在並且工作正常。
2nd - http://www.trekradio.net/dev/ - 轉到主頁面,然後點擊主菜單上的「schedule」 - 它使用AJAX加載日程表頁面,但是頁面上的所有腳本現在缺失或未執行。
我已經嘗試了很多事情來解決這個問題 - 在日程安排頁面上,幾個腳本嵌入到頁面本身中,我試着將它們移動到標題中,希望這是因爲標題沒有重新加載,腳本可能會運行 - 他們沒有。
而且,我已經嘗試解決這裏提到:Executing <script> inside <div> retrieved by AJAX - 但它談論使用動態腳本模式,我要麼沒有得到它正常工作的能力,或者,它並不在的背景下正常工作是什麼我正在努力完成。
我也嘗試使用這裏建議的解決方案:jquery html() strips out script tags然而,我再次,我無法得到它的工作。
這裏是我的ajax.js中的哪一個供電的Ajax功能的內容:
jQuery(document).ready(function($) {
var $mainContent = $("#ajax-content-container"),
siteUrl = "http://" + top.location.host.toString(),
url = '';
$(document).delegate("a[href^='"+siteUrl+"']:not([href*=/wp-admin/]):not([href*=/wp-login.php]):not([href$=/feed/])", "click", function() {
location.hash = this.pathname;
return false;
});
$("#searchform").submit(function(e) {
location.hash = '?s=' + $("#s").val();
e.preventDefault();
});
$(window).bind('hashchange', function(){
url = window.location.hash.substring(1);
if (!url) {
return;
}
url = url + " #main-content-container";
$mainContent.animate({opacity: "0.1"}).html('<p>Please wait...</>').load(url, function() {
$mainContent.animate({opacity: "1"});
});
});
$(window).trigger('hashchange');
});
從我通過谷歌-ING發現 - 很多很多人有這種類型的問題,他們的AJAX網站,努力讓腳本在加載的頁面上運行,所以我希望這裏的人們可以幫助提出一個解決方案,不僅可以應用到我的網站,還可以使用他們的網站。
如果人們將代碼與他們的答案包括在一起,或至少解釋清楚我如何修改代碼來完成所需內容,我們將不勝感激。我仍然在學習jQuery/AJAX,所以也許我很愚蠢,並且忽略了一個相對簡單的解決方案,但是我記得,我記得整個社區和我自己都有很好的文檔回答。
你談論的頁面已經JavaScript或頁面內的JavaScript動態加載的? – mpm
從我所知道的內容中動態加載的內容中沒有執行javascript。 –