在URI.js中,解析URL时,如果URL中含有#后的部分(通常用来表示锚点),会被当做fragment(片段)而不是query参数。因此,无法直接通过parse方法获取到包含在#后的query参数。
复制
要获取包含在#后面的query参数,可以先使用URI.js的.fragment()方法获取到#后的部分,然后再对这部分进行进一步解析获取query参数。
示例代码如下:
// 假设完整URL为:http://example.com:8080/vue/#/menu?item=1&type=2 var uri = URI("http://example.com:8080/vue/#/menu?item=1&type=2"); var fragment = uri.fragment(); // 获取#后的部分 "/menu?item=1&type=2" var fragmentUri = URI(fragment); // 对#后的部分再次进行URI解析 var query = fragmentUri.query(true); // 获取query参数,结果为 { item: "1", type: "2" }
复制
通过以上方法,可以成功获取到含有#的vue完整菜单地址中的query参数。