我将一个 html 加载到一个right-body使用 jQuery调用的 div 中:$("#right-body").load( "views/" + $(this).attr("page")+ ".html");这将重新加载整个页面。因此,我丢失了 url 的哈希值。我怎样才能保持哈希?我尝试在重新加载后重置它:var hash = window.location.hash;$("#right-body").load( "views/" + $(this).attr("page")+ ".html");window.location.hash = hash;但它不起作用。window.location.hash = hash;似乎是无效的。
3 回答
杨__羊羊
TA贡献1943条经验 获得超7个赞
如果页面在执行后重新加载.load()
,您的哈希值将重置为undefined
。
您可以潜在地使用本地或会话存储并在页面重新加载后检索散列,而不是将其存储在变量中。
万千封印
TA贡献1891条经验 获得超3个赞
试试这个:
if(typeof page === "undefined"){
var page = "";
}
if(page !== ""){
page = "views/" + $(this).attr("page")+ ".html";
}
$("#right-body").load(page);
注意! 我不建议在那时使用 id,因为它会一次又一次地重复。因此,您需要更改“子”页面的 ID。告诉我如果它不起作用!
繁星点点滴滴
TA贡献1803条经验 获得超3个赞
通过window.location.hash = hash;作为回调解决它。. 然而,可能不是最好的解决方案,因为您可以看到从“#”到“#myhashparams”的 url 闪烁...
$("#right-body").load( "views/" + $(this).attr("page")+ ".html", () => {
window.location.hash = hash;
});
添加回答
举报
0/150
提交
取消