标签: hashchange

On - window.location.hash - 更改?

我正在使用Ajax和hash进行导航.

有没有办法检查是否window.location.hash改变了这样?

http://example.com/blah #123http://example.com/blah #456

如果我在文档加载时检查它,它可以工作.

但是如果我有基于#hash的导航,那么当我按下浏览器上的后退按钮时它就不起作用了(所以我从#456跳到了#123).

它显示在地址框内,但我无法用JavaScript捕获它.

javascript ajax javascript-events fragment-identifier hashchange

548
推荐指数
9
解决办法
39万
查看次数

在不使用JavaScript加载新页面的情况下更改浏览器中的URL

我如何使用可能对当前页面产生一些影响的JavaScript操作,但也会更改浏览器中的URL,以便在用户点击重新加载或书签时使用新URL?

如果后退按钮会重新加载原始URL也会很好.

我试图在URL中记录JavaScript状态.

javascript url fragment-identifier hashchange

296
推荐指数
6
解决办法
29万
查看次数

87
推荐指数
2
解决办法
6万
查看次数

jQuery - hashchange事件

我在用:

$(window).bind( 'hashchange', function(e) { });
Run Code Online (Sandbox Code Playgroud)

将函数绑定到散列更改事件.这似乎适用于IE8,Firefox和Chrome,但不适用于Safari,我认为不是早期版本的IE.对于这些浏览器,我想禁用使用哈希和hashchange事件的JavaScript代码.

如果浏览器支持该hashchange事件,我可以检测到jQuery的方法吗?也许是jQuery.support......

javascript jquery hashchange browser-state

83
推荐指数
5
解决办法
16万
查看次数

检测URL中的后退按钮/哈希值更改

我刚在http://ritter.vg上设置了我的新主页.我正在使用jQuery,但非常简单.
它使用AJAX加载所有页面 - 我将其设置为通过检测URL中的哈希来允许书签.

 //general functions
 function getUrl(u) {
      return u + '.html';
 }
 function loadURL(u)    {
      $.get(getUrl(u), function(r){
                $('#main').html(r);
           }
      );
 }
 //allows bookmarking
 var hash = new String(document.location).indexOf("#");
 if(hash > 0)
 {
      page = new String(document.location).substring(hash + 1);
      if(page.length > 1)
        loadURL(page);
      else
        loadURL('news');
 }
 else
      loadURL('news');
Run Code Online (Sandbox Code Playgroud)

但我不能让后退和前进按钮工作.

有没有办法检测何时按下后退按钮(或检测哈希值何时更改)而不使用setInterval循环?当我尝试使用.2和1秒超时时,它固定了我的CPU.

javascript navigation ajax fragment-identifier hashchange

60
推荐指数
4
解决办法
11万
查看次数

如何在URL中显示Ajax请求?

我想要的是拥有更改页面一部分的链接,以及它的动态URL,我可以在其中指定变量等 #calendar=10_2010tabview=tab2

Check this for an exact example: 点击这里进行精确的演示

所以这是我需要的链接格式:

#calendar=10_2010&tabview=tab2

我必须像链接变量calendartabview这样我就可以改变一个页面上的多个万物而不realoading.


或者像http://www.wbhomes.com.au这样的其他格式,这正是我想要的,但是第一种格式也很好,但这更美观.

  • http://wbhomes.com.au/#/propertiesforsale/houseandland/quinnsbeach-waterland1

要求

  • 需要从例如邮件的任何地方访问,或者如果我只是在URL栏中写入.

  • 链接应该在历史记录中,因此如果我按下后退或前进按钮,则需要访问该页面.

  • 页面刷新也需要工作.


一些资源:

例子:

一些教程:


请帮我!我从来没有找到任何解决方案来做到这一点,但我不想使用jquery或任何API,或任何库,我想有一个工作Javascript/AJAXPHP脚本.

php ajax url-rewriting fragment-identifier hashchange

31
推荐指数
1
解决办法
1万
查看次数

在JQuery中执行URL哈希/历史记录的最佳库是什么?

我一直在寻找JQuery库的URL哈希,但发现没有什么是好的.有"历史插件",但我们都知道它是有缺陷的并且不灵活.

我在div中加载我的页面.我需要一种方法来进行后退/前进以及url散列.

mydomain.com/#home
mydomain.com/#aboutus
mydomain.com/#register
Run Code Online (Sandbox Code Playgroud)

什么是最好的库可以处理所有这些?

javascript ajax jquery fragment-identifier hashchange

23
推荐指数
1
解决办法
2万
查看次数

当通过javascript呈现时,IE不将链接标记为"已访问"

我正在使用一个网站,其中所有内容都是使用jquery通过ajax回发呈现的.我正在使用Ben Alman的hashchange(http://benalman.com/projects/jquery-hashchange-plugin/)来管理哈希历史记录,它允许我为页面添加书签,使用后退按钮等等...一切都可以完美地应用于所有内容IE 9当然.在IE中存在一个小问题,"访问"链接未标记为已访问.在加载新内容之前单击链接后,您可以看到该链接在一瞬间变为紫色(已访问).但是,一旦单击后退按钮,链接就会显示为从未访问过.以下是我所谈论的一个例子:http: //jsfiddle.net/7nj3x/3/

这里是jsfiddle代码,假设你有jquery和head中引用的hashchange插件:

$(function(){
  // Bind an event to window.onhashchange that, when the hash changes, gets the
  // hash and adds the class "selected" to any matching nav link.
  $(window).hashchange( function(){
    alert("Hash changed to:"+location.hash);  
    var hash = location.hash;
    // Set the page title based on the hash.
    document.title = 'The hash is ' + ( hash.replace( /^#/, '' ) || 'blank' ) + '.';
    //simulate body being rendered by ajax callback 
      if(hash == ""){ …
Run Code Online (Sandbox Code Playgroud)

javascript ajax internet-explorer hashchange

21
推荐指数
1
解决办法
1410
查看次数

jquery.history.js VS jquery-hashchange

http://balupton.github.io/jquery-history/demo/

我被jquery.history.js所吸引

我发现的意思是

http://benalman.com/code/projects/jquery-hashchange/examples/document_domain/

我认为第二个是基于JQuery.我的意思是它不需要任何额外的插件而不是jQuery.

jquery.history.js有什么特别之处?哈希变化?

我应该使用哪个来覆盖我的浏览器后退和前进按钮?

jquery html5 hashchange history.js

18
推荐指数
2
解决办法
4万
查看次数

获取hashchange事件以适用于所有浏览器(包括IE7)

我有一些代码(由另一个开发人员编写)在WordPress内部进行AJAX页面加载(例如,没有页面重新加载),当您单击导航项时,AJAX刷新主要内容区域.我的问题是它在IE7中被破坏了,我不知道从哪里开始调试.

原来的开场线是

var queue = 0;

$('document').ready(function() {
    window.addEventListener("hashchange", hashChange, false);

    // Define window location variables
    var windowHost = window.location.host,
        windowHash = window.location.hash,
        windowPath = window.location.pathname;
Run Code Online (Sandbox Code Playgroud)

但是我改变它们以addEventListener根据该方法是否存在来作出条件限制.一些研究告诉我,该方法在旧版本的IE中不可用(例如在我的情况下为7).此外,IE7调试控制台将其识别为不可用的方法,因此非常清楚.我重写了以下行,但代码仍然无法正常工作:

var queue = 0;

$('document').ready(function() {
    if(window.addEventListener) {
        window.addEventListener("hashchange", hashChange, false);
    }
    else if (window.attachEvent) {
        window.attachEvent("hashchange", hashchange, false);    
    }
    // Define window location variables
    var windowHost = window.location.host,
        windowHash = window.location.hash,
        windowPath = window.location.pathname;
Run Code Online (Sandbox Code Playgroud)

可以在此pastebin中查看完整的原始脚本:http://pastebin.com/Jc9ySvrb

javascript jquery internet-explorer fragment-identifier hashchange

17
推荐指数
1
解决办法
2万
查看次数