我想使用location.hash对我的客户端应用程序的状态进行编码,这样用户就可以使用URL轻松地添加书签和/或共享应用程序的完整状态。关于url的最大长度有许多(过时的)主题,尤其是InternetExplorer中的限制。但是,尚不清楚location.hash的最大大小是多少。因为散列只存在于客户端,HTTP或服务器的限制是不相关的。我做了一个简单的jsfiddle来测试这个:http://jsfiddle.net/Jz3ZA/.在Chrome和Firefox(Ubuntu12.04)中,最大50K的哈希值似乎都有效。这是否意味着我可以使用它们来存储状态,或者我忽略了其他限制?
我正在使用document.location.hash来保存页面上的状态,并且我将url编码的键值对放在那里,由“&”字符分隔。到目前为止,一切都很好。但是我在Firefox上遇到了一个恼人的问题——Firefox会在进入的过程中悄悄地对哈希值进行url解码,所以当你稍后取出它时,它已经被解码了。我可以通过检测何时在firefox上运行并在运行时对所有内容调用encodeURIComponent两次来修补问题,但显然这很可怕,我真的不想那样做.这是一个简单的示例,我将“=”编码为“%3D”,将其放入散列中,当我稍后将其取出时,它会自动变回“=”://onthewayin::docume
我已经尝试解决这个问题一段时间了,但我无法让它工作。当用户单击链接时,系统会要求他确认是否要执行此操作。然后进行ajax调用。调用的脚本工作正常并返回一个字符串重定向到哪里。我在这里看到了几篇关于window.location问题的帖子,但没有一篇能解决我的问题。我的代码:functionconfirm(a,b,c){varr=confirm("Areyousuretodothis?");if(r==true){$.ajax({type:"POST",url:"/process-action.php",async:false,data:{a:a,b:b,c:c},success:fun
如果url的域是当前页面的域,则在执行windows.location(url)时是否保留cookie? 最佳答案 要真的迂腐,改变window.location在Javascript中将导致浏览器转到另一个站点,其中包括发出GET请求。换句话说,一个GET请求和Javascriptswindow.location是两个完全不同的东西;一种是HTTP请求类型,另一种是DOM属性。不过,就问题而言,它们可以被认为是等价的。Cookie被保留。:) 关于javascript-window.l
我想在不重新加载的情况下改变AngularJS的路径,看http://joelsaupe.com/programming/angularjs-change-path-without-reloading/在core.js中:'usestrict';angular.module('App',['ngRoute']).run(['$route','$rootScope','$location',function($route,$rootScope,$location){varoriginal=$location.path;$location.path=function(path,reload
我构建了一个使用router3.0.0-beta.1的应用程序在应用程序部分之间切换。我也用location.go()模拟同一页面的子部分之间的切换。我用了和一些URL重写规则,以便将所有路由重定向到index.html在页面刷新的情况下。这允许路由器接收请求的子部分作为URL参数。基本上我已经设法避免使用HashLocationStrategy.routes.tsexportconstroutes:RouterConfig=[{path:'',redirectTo:'/catalog',pathMatch:'full'},{path:'catalog',component:Catal
我做了一个简单的函数,使所有容器的行为都像链接(“a”元素)。functionallHot(element){$(element).click(function(){varhref=$(this).find('a').attr('href');window.location.replace(href);}).hover(function(){$(this).css({'text-shadow':'0px1px0px#D6D6D6'});},function(){$(this).css({'text-shadow':'none'});});}功能很好。用户无需单击“更多”按钮,而是可以单
所以我有一个表单,onsubmit="returnreg_check(this)"其中reg_check()是header中的一个javascript函数,它应该检查表单数据,因为它的任务之一是检查用户名是否在需要php的数据库中,所以我想重定向到执行此任务的php页面。问题是:window.location.href不工作!这是函数(简化版),当然main.php只是我得到的一个随机页面:functionreg_check(myForm){alert("beforeredirect..");window.location.href="http://localhost/main.php
我有这样的代码:$('.entrya:first').click(function(){});我想知道如何使用Javascript实现此目的。 最佳答案 您不能以这种方式混合使用JS和PHP,PHP在页面发送到浏览器之前呈现(即在JS运行之前)您可以使用window.location来更改当前页面。$('.entrya:first').click(function(){window.location="http://google.ca";}); 关于javascript-使用Javasc
如果使用window.location.href=window.location.href;重新加载页面(不重新发布)并不是一个坏习惯,我们应该如何看待JSLint的“奇怪的分配”投诉?EDITwindow.location.reload()当您不想再次POST表单数据时不适合。在某些浏览器中,它会引发“重新发送表单数据?”最好在不需要时避免。更新我做了一些非常简短的测试并发现:Mac上的Chrome12和Safari5.0.5不会使用.reload()重新发布Mac上的FF2.0、3.6、4.0、5.0通过.reload()、.reload(true)和.reload(false)X