为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 jQuery 在 load() 上保留 url 的#-part?

如何使用 jQuery 在 load() 上保留 url 的#-part?

四季花海 2021-08-20 17:05:47
我将一个 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

您可以潜在地使用本地或会话存储并在页面重新加载后检索散列,而不是将其存储在变量中。


查看完整回答
反对 回复 2021-08-20
?
万千封印

TA贡献1891条经验 获得超3个赞

试试这个:


if(typeof page === "undefined"){

    var page = "";

}

if(page !== ""){

    page = "views/" + $(this).attr("page")+ ".html";

}


$("#right-body").load(page);

注意! 我不建议在那时使用 id,因为它会一次又一次地重复。因此,您需要更改“子”页面的 ID。告诉我如果它不起作用!


查看完整回答
反对 回复 2021-08-20
?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

通过window.location.hash = hash;作为回调解决它。. 然而,可能不是最好的解决方案,因为您可以看到从“#”到“#myhashparams”的 url 闪烁...


$("#right-body").load( "views/" + $(this).attr("page")+ ".html", () => {

window.location.hash = hash;

});


查看完整回答
反对 回复 2021-08-20
  • 3 回答
  • 0 关注
  • 164 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信