当前位置:  开发笔记 > 编程语言 > 正文

Chrome不支持此查询字符串

如何解决《Chrome不支持此查询字符串》经验,为你挑选了2个好方法。

我从一个链接中提取数据,http://safalra.com/web-design/javascript/parsing-query-strings/.它在Firefox中运行良好,但Google Chrome不支持此功能.是否有更好的方法或替代程序来提取查询字符串内容?


Cerebrus.. 6

parseQueryString()您链接到的页面的作者创建的函数显然会调用一些不在Chrome上运行的JavaScript代码.

这并不意味着Chrome一般不支持QueryStrings.您似乎假设该parseQueryString()功能本质上是全局的,并且固有地内置于所有浏览器中.相反,它是由作者构建的自定义函数.

建议您使用页面上的联系表单给作者发送电子邮件,或者深入查看JavaScript文件并找出不支持的内容.



1> Cerebrus..:

parseQueryString()您链接到的页面的作者创建的函数显然会调用一些不在Chrome上运行的JavaScript代码.

这并不意味着Chrome一般不支持QueryStrings.您似乎假设该parseQueryString()功能本质上是全局的,并且固有地内置于所有浏览器中.相反,它是由作者构建的自定义函数.

建议您使用页面上的联系表单给作者发送电子邮件,或者深入查看JavaScript文件并找出不支持的内容.



2> some..:

http://safalra.com/web-design/javascript/parsing-query-strings/上的parseQueryString 有一些错误:

多个+s不会被空格替换.

多个未转义的等号会导致内容丢失.

空输入导致带有键""的对象.

不会丢弃多个空键

在下面的函数中,上面的错误已被删除,并已在Firefox 3,Internet Explorer 7,Opera 9和Google Chrome 1中进行了测试.

function parseQueryString(input){
    var out={}, decode=decodeURIComponent, s=input||location.search||"",
        kv=("?"===s.charAt(0)?s.slice(1):s).replace(/\+/g," ").split(/[&;]/g),
        idx=-1,key,value;
    while(++idx

上面的函数(和原始函数)只需要URL的查询部分:从问号到字符串的结尾或第一个#.如果没有提供参数,它将自动从浏览器的当前位置的URL中提取查询部分.

结果是一个带有查询字符串键的对象,所有键的值都是所有值的数组.

var data = parseQueryString("?a=test1&a=test2&b=test3");

//Result of data:
{
    a:["test1","test2"],
    b:["test3"]
}

一些例子:

// Alert all values of the a key:
if (data.a && data.a.length) {
  for (var i=0;i

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有