如果网址中的网页锚点发生变化,即从
开始,是否有人知道如何触发页面加载事件http://mywebsite.com/#test1
to
http://mywebsite.com/#test2
使用后退按钮时?
我尝试了底部的代码(history.navigationMode
行以及ready()
函数确保即使使用浏览器Back按钮也会触发onload事件),但是如果只有URL的页面锚点部分发生变化,并且使用了“后退”按钮。我知道如果URL更改它的查询字符串(或URL指向新文件/文件夹),此代码有效,因为我一直使用它,但看起来jQuery的ready()函数在使用Back按钮时不会触发如果只有URL中的页面锚点位置发生变化。
我正在尝试提出一个解决方案,让浏览器的“后退”按钮保留对页面的JavaScript / AJAX操作,我的目标是基于这个人的想法:http://www.ajaxonomy.com/2008/web-design/a-better-ajax-back-button-part2但不依赖于使用重复计时器以检查URL页面锚点是否已更改 - 我希望在页面onload事件触发时检查此信息。
任何想法/建议?
<script language="javascript" type="text/javascript" src="/jquery.js"></script>
<script language="javascript" type="text/javascript">
history.navigationMode = 'compatible';
$(document).ready( function() {
if(document.location.hash){
var hashQueryString = document.location.hash;
hashQueryString = hashQueryString.replace("#","");
alert(hashQueryString);
}
});
答案 0 :(得分:2)
在不久的将来,我们将举行onhashchange活动,它将在新浏览器上推出,IE8已经支持它。
但就目前而言,我建议您查看以下解决方法:
答案 1 :(得分:1)
你可以使用jQuery plugin和一个很棒的Railscasts剧集来向你展示如何使用它(截屏视频不是特定于Rails的)。