Tag: history.js

IE上的window.history.pushState问题

我在我的网站上使用jQueryUI Auto-complete ,它是window.history.pushState ,它在不刷新页面的情况下更改了browser-url。 它完全适用于Chrome和Mozilla但遗憾的是它无法按照我希望它在Internet Explorer 9上运行的方式工作。 这是情况,使用jQueryUI Auto-complete我可以通过页面上的标签搜索区域,县和拉链。 然后,如果我点击了自动完成的任何建议结果,则使用window.history.pushState ,浏览器url将从www.example.com/sites更改为www.example.com/sites/selected_region而不刷新页面。 现在正如我所说,它适用于Chrome和Mozilla但它在IE9失败,因为当我点击jQueryUI Auto-complete任何建议结果时,它既不会更改浏览器url也不会关闭列表的建议。 它肯定不支持window.histoty.pushState 。 所以我搜索并找到了一个可能使用history.js的解决方案。 我只是按照说明将它上传到我的服务器上并包含history.js文件,但事实certificate它与我正在使用的其他.js文件冲突。 我该如何解决这个问题? 提前致谢。 PS:这是我如何使用window.history.pushState $( “#find” ).autocomplete({ minLength: 1, source: function(request, response) { var results = $.ui.autocomplete.filter(locations, request.term); response(results.slice(0, 10)); }, focus: function( event, ui ) { $( “#find” ).val( ui.item.value ); return false; }, appendTo: “#results”, open: function(){ […]

浏览器的后退按钮显示出奇怪的行为。 History.js

我有一个标签。 在更改所选项目时,使用AJAX通过以下函数更新一些 : update_div1, update_div2, update_div3 。 管理此操作的代码如下并且运行良好: $(‘select.select-x’).change(function(e) { e.preventDefault(); var value = $(‘select.select-x option:selected’).val(); var text = $(‘option:selected’).text(); update_div1(value); update_div2(value); update_div3(value); manage_history(value,text); return false; }); 问题出在最后一个函数manage_history ,它负责管理浏览器历史记录。 在这个函数中,我使用history.js来推送历史堆栈中的浏览器状态。 据我所知,在阅读了很多有关history.js的文章之后,应该在History.Adapter.bind()包含后退和前进按钮的操作。 问题是浏览器的后退按钮具有奇怪的行为:它们多次执行History.Adapter.bind()内部的函数,这是我已经通过触发onChange事件的次数的exaclty。 manage_history的代码是: function manage_history(str,str2) { var History = window.History; if ( !History.enabled ) { return false; } var path = ‘http://localhost/enc/?p=’+str; History.pushState({myid:str},str2,path); History.Adapter.bind(window,’statechange’,function() { […]

jquery插件history.js在html4浏览器中无法正常工作

在我的主页上,我们称之为mysite.com ,我点击一个具有此href值的链接: /home/home.php?doc=gym 。 所以,整个url是mysite.com/home/home.php?doc=gym# (浏览器在url的末尾添加了# ,但我需要在参数之前将插件正常工作)。 从那个页面home.php ,我点击了一个链接,我发现了它的事件,加载了一些Ajax数据,并希望将url mysite.com/home/home.php?doc=gym更改为mysite.com/home/home.php?doc=pilates 。 所以,我所做的是:只要加载内容,我就执行History.pushState(null, null, url); url = ?doc=pilates 。 这是问题出现的时候,例如,在Internet Explorer 8中,新的url是: mysite.com/home/home.php?doc=gym#home.php?doc=pilates而不是mysite.com/home/home.php?doc=pilates 。 我想,这种情况发生了,因为我在第1.步说的最后一件事1. 如果我单击另一个链接并执行pushState方法,它将使用我编写的参数替换?doc=pilates作为函数的第三个参数,因为它位于#符号之后。

历史API html5,如何知道用户点击下一个/后一个浏览器按钮的时间?

我熟悉html5 History API,但我使用history.js来扩展兼容性, 我有一个问题就是这样,我怎么知道: History.Adapter.bind(window,’statechange’,function(){ // Note: We are using statechange instead of popstate var State = History.getState(); // Note: We are using History.getState() instead of event.state /* Condition here to know if this change is a back or next button, and wich one?? */ }); 这是我的“整体”代码…… var the = this; var History = window.History; […]

history.js – 正确的实现

我在我的网站上加载了一个名为#container的div与JQuery / Ajax。 我有不同类型的链接: 普通的锚链接 JQuery-Triggers在单击特定div时触发事件。 现在我想添加支持后退和前进浏览器按钮和书签function的function。 我遇到了history.js,但我遇到了一些问题,并且找不到一个非常简单的教程如何正确使用它。 我的链接: Imprint 我读到SEO最好使用<a href="https://stackoverflow.com/questions/9645920/history-js-the-correct-implementation/imprint/" …但是我的服务器上找不到该URL。 所以我的第一个问题是,我如何确保myurl.com/imprint正常工作并且不会产生404页? 来到history.js …目前我在index.php中包含了以下代码,紧跟在后面 $(document).ready(function(){ (function(window,undefined){ // Prepare var History = window.History; // Note: We are using a capital H instead of a lower h if ( !History.enabled ) { // History.js is disabled for this browser. // This is because we can […]

当hashchange发生时,IE不会触发popstate

我有使用history API和push / popstate在客户端进行路由的页面。 它适用于所有现代浏览器。 (node.js预渲染器将支持搜索引擎) 但是,我最近碰到了一个问题,即IE不会在hashchange上激活popstate,而pushstate与url的工作正常,包括IE11。 例如,像这样…… $(document).on(‘click’, ‘a’, function(e) { e.preventDefault(); History.pushState({}, ”, $(this).attr(‘href’)); }); ……正确地发射…… $(window).on(‘popstate’, function() { console.log(‘url changed’); }); 根据W3C规范,hashchange应该触发popstate,因为它正在改变当前的历史记录。 但是,当我添加哈希链接( … ),在IE上单击它时,什么都不会触发。 :/ 我不想做IE检测(因为现在有很多浏览器可能会陷入同样的​​厄运),而不是使用特征检测。 但是,由于历史(popstate / pushstate)在其余部分工作得很好,我甚至无法检测到丢失的push / popstate上的问题…… if(!window.history || !window.history.pushState) { … …而是使用hashchange代替。 :/ 有什么想法吗? PS。 作为奖励,使用jquery.history.js(jquery包装的history.js版本)和hashtag url将整个事情搞得一团糟。 http://localhost/routetest/index.html#/page1/1234 变 http://localhost/page1/1234 …… ??? :/

使用history.js在iframe中的后退按钮

我在RoR做一个项目。 该项目位于iFrame中。 在那个iframe有前进和后退按钮。 当我单击向后按钮时,iframe内容应该返回但不是整个浏览器页面。 我正在使用“ histroy.js ”插件。 但我不知道如何使用它。 我的代码是这样的: $(‘#back-btn’).on(‘click’, function () { History.back(); }); $(‘#forward-btn’).on(‘click’, function () { History.forward(); }); $(“a”).click(function () { n = 1; q = n++; var s = $(this).attr(“href”); var o = ‘History.pushState({state:’ + q + ‘,rand:Math.random()}, “State 1″, \”‘ + s + ‘\”);’ $(“#z”).empty().append(‘sds’); $(“#z button”).click(); //this is for […]

history.js插件 – 如何使用

我需要一只手与history.js插件。 我整理了一个简短的页面来测试function – http://www.salesmelbourne.com/ 目前我正在努力解决以下问题: 后退/前进按钮不会重新加载AJAX div – 这是一个额外的history.js函数,我还没有添加或者我需要自己编写代码吗? 或两者。 我注意到标题更新时闪烁 – 我相信它会简要显示页面元标题。 我可以顺利吗? IE(我正在使用verison 9)在每个页面上显示一个弹出框更改说“来自网站的消息” – 有点像错误 – 我能以某种方式对此进行排序吗? 同样在IE(HTML4浏览器)下我得到’suid = 13383514298760299522541335484’等我不明白为什么我需要这个 – 我可以删除suid吗? 谢谢堆

无法理解History.js,需要简化吗?

我对编程很新,而且我在jQuery的帮助下创建了一个AJAX站点。 我已经为AJAX历史处理程序了解了一下,并认为History.js似乎是最好的/最新的。 我的菜单按钮每个都有自己唯一的ID(#homeBtn,#featureBtn,#pricingBtn),目前看起来像这样: Home 关于如何实现History.js,有人能给我一个例子(最好是关于jsfiddle)吗? 我似乎无法掌握作者给出的任何例子,我只需要一个愚蠢的版本= b 如果您需要更多信息,请告诉我,谢谢!

我如何在我的网站上实际使用history.js

我已经在stackoverflow上阅读了关于history.js的所有post,包括, 这个 , 这个和这个以及查看源代码但是作为javascript / jquery的新手我无法弄清楚如何实际实现html 5历史记录支持和回退以支持ie8 / 9等html4浏览器。 我可以通过尽可能多地呈现一致的URL来体会用户体验带来的好处,如何解决深层链接并允许我想要实现的书签,但是当我尝试在我的网站上实际使用它时,我有点迷失。 将history.js脚本添加到我的页面后 我承诺修改的代码是: function(window,undefined){ // Prepare var History = window.History; // Note: We are using a capital H instead of a lower h if ( !History.enabled ) { // History.js is disabled for this browser. // This is because we can optionally choose to support HTML4 […]