我使用JQuery在我的rails應用程序中實現分頁,並且遇到了一個問題,即當我在瀏覽器中回彈時,rails無法呈現頁面內容,而是轉儲原始的Javascript到我的瀏覽器窗口中。下面就讓我們來看看,我使用的是什麼:在導致渲染失敗的Rails中的JQuery分頁
pagination.js:
if (history && history.pushState) {
$(function() {
$('.pagination a').live("click", function() {
$.ajax({url: this.href, dataType: "script", cache: true});
history.pushState(null, document.title, this.href);
$("html, body").animate({ scrollTop: 0 }, 300);
return false;
});
$(window).bind("popstate", function() {
$.ajax({url: location.href, dataType: "script", cache: true});
});
});
}
在我看來,index.js.erb的:
$("#products").html("<%= escape_javascript(render("products")) %>");
它工作在某些時候,但通常當點擊後退按鈕時,JS將被轉儲到我的瀏覽器窗口中而不被評估/呈現。它看起來像這樣(在我的瀏覽器中):
$("#products").html("<table class=\"table table-striped\">\n<thead>\n<tr>\n<th>Products
...等等。我不確定究竟是什麼失敗。有任何想法嗎?
爲我們提供了關於此渲染功能的更多輸入以及您的瀏覽器向您展示的內容。 – worenga
我的瀏覽器的內容看起來像上面的代碼塊,Javascript和HTML顯示在我的瀏覽器中,而不是被評估。 escape_javascript和render是rails框架的一部分。 – Josh
爲什麼不使用jquery-pjax,順便說一句? – Roman