JavaScript:通过使用 # 符号的路由从 URL 获取查询字符串

标签 javascript extjs query-string extjs5 window.location

我正在使用 Ext JS 的 routing在我的应用程序中,但这是一个更基本的问题...只需知道 Ext JS 中的路由设置类似于 http://url/#area1/subarea1,其中 #area1 将带我到父级区域,subarea1 将带我到area1 的第一个子项目。

无论如何,我想要完成的是将查询参数添加到我的 URL...所以它会像 http://url/#area1/subarea1?startDate=03/03/2014&isDraft= true,但看起来像 location.search在 FF 和 Chrome 中都是一个空字符串,所以我假设这是设计使然。我知道我可以解析 location.href,但这看起来很愚蠢。我基本上想知道我是否做错了什么,或者是否还有其他我可以使用的属性?

最佳答案

位置 URL 始终具有以下顺序:协议(protocol)主机名路径名搜索哈希。在您的情况下,搜索为空,因为 # 位于第一个 ? 之前。

因此,在http://url/#area1/subarea1?startDate=03/03/2014&isDraft=true中,

  • location.protocolhttp:
  • location.hostnameurl
  • location.pathname/
  • location.search 为空
  • location.hash#area1/subarea1?startDate=03/03/2014&isDraft=true

因此 location.hash.split('?')[1] 应包含您想要的“查询参数”,或者如果您希望它们作为对象,则为 Ext.Object。 fromQueryString(location.hash.split('?')[1] || {})

关于JavaScript:通过使用 # 符号的路由从 URL 获取查询字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36798608/

相关文章:

javascript - Socket.io http ://localhost:3000/socket. io/socket.io.js 404(未找到) - 如何配置 socket.IO - nodejs、apache2、websockets

exception - 组件返回失败代码 : 0x80070057 (NS_ERROR_ILLEGAL_VALUE) [nsIXMLHttpRequest. open ]"nsresult: "0x80070057 (NS_ERROR_ILLEGAL_VALUE)

javascript - Sencha touch 应用程序加载器一直闪烁

javascript - Ext.formPanel 使用关闭按钮复制内容

cookies - Nginx 301 重定向公司设置cookie

java - 将查询字符串参数解析为 java 对象

javascript - Fullcalendar,防止用户选择多日事件

javascript - meteor 句柄表单输入

javascript - 如何从 CSS 访问 SVG 文件中的元素?

java - 如何将 url 中的查询字符串传递的值传递到 spring Controller 中?