0
我正在使用ajax創建網絡應用程序,並且在獲取上次訪問的URL時遇到問題,以便在有人按下瀏覽器上的按鈕時可以重新加載內容。jQuery在ajax頁面中獲取上次訪問的網頁
假設我在http://example.com,然後我導航到http://example.com/#hello-world並導航到http://example.com/#using-custom-function。
當我們前進時,它運行良好,但當用戶單擊瀏覽器上的後退按鈕時,頁面不會加載內容,但URL會更改。
我已經嘗試過哈希更改,但這也無濟於事,因爲它也爲前向和後向請求重新加載頁面。
我想知道是否有解決方案。
這裏是我的AJAX功能,
function get_gallery_artworks(arguments,data,media,type,page,callback_function, gal_ids){
/*Masking*/
//Get the screen height and width
var maskHeight = jQuery('window').height();
var maskWidth = jQuery('window').width();
var loaderWidth = maskWidth/2;
var overlay_id = 'overlay-div';
//Set heigth and width to mask to fill up the whole screen
jQuery('.loader-image').css({
'left':loaderWidth,
'top':maskHeight
});
jQuery('.overlay').css({
'opacity':0,
'height':jQuery(document).height(),
'width':jQuery(window).width()
});
//transition effect
jQuery('.overlay').fadeIn(1000);
jQuery('.overlay').fadeTo("slow",0.8);
var loader_height = ((jQuery(document).height())/4);
var loader_width = ((jQuery(window).width())/2);
jQuery('#'+overlay_id).css('left', loader_width);
jQuery('#'+overlay_id).css('top', loader_height);
jQuery('#'+overlay_id).css('display', 'block');//alert('#'+id);
jQuery('#'+overlay_id).css('padding', '0px 0px 15px 15px');
//transition effect
jQuery(overlay_id).fadeIn(2000);
var data_str = arguments;
window.location.hash = 'gallery='+data_str;
var data_arr = data_str.split("_");
collection_id = data_arr['0'];
artist_id = data_arr['1'];
artwork_id = data_arr['2'];
jQuery.ajax({
type : 'POST',
url : ajax_url,
data : {
collection_id:collection_id,
artwork_id:artwork_id,
artist_id:artist_id,
media:media,
type:type,
callback:callback_function,
navigation:jQuery('.gs-top-navigation').html(),
gspage:page,
data : '',//data_obj
gal_ids : gal_ids
},
success: function(result) {
jQuery('.overlay').hide();
jQuery('.window').hide();
jQuery('.gs-content').html(result);
window.document.body.scrollTop = 0;
window.document.documentElement.scrollTop = 0;
},
error: function(jqXHR, textStatus, errorThrown)
{
alert(textStatus);
alert(errorThrown);
jQuery('.overlay').hide();
jQuery('.window').hide();
}
});
}
是的,有一個解決方案..但你有什麼試過?你的代碼是什麼樣的? – putvande
這是我迄今爲止所做的。 '的jQuery(窗口)。在( 'hashchange',函數(){ window.location.reload(真); });' 但它總是重新加載頁面 –
,你可以嘗試使用一個jquery插件解決方案[jQuery的hashchange](http://benalman.com/projects/jquery-hashchange-plugin/)允許你執行url/hashchange –