Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 铬不';不支持此查询字符串_Javascript_Google Chrome_Query String_Cross Browser - Fatal编程技术网

Javascript 铬不';不支持此查询字符串

Javascript 铬不';不支持此查询字符串,javascript,google-chrome,query-string,cross-browser,Javascript,Google Chrome,Query String,Cross Browser,我正在从链接中提取数据。它在Firefox中运行良好,但Google Chrome不支持此功能。是否有更好的方法或替代过程来提取查询字符串内容 <script type="text/javascript"> var _url = window.location alert(_url); var queryData = parseQueryString(_url.toString()); var p = queryData['http://localho

我正在从链接中提取数据。它在Firefox中运行良好,但Google Chrome不支持此功能。是否有更好的方法或替代过程来提取查询字符串内容

<script type="text/javascript">
    var _url = window.location
    alert(_url);
    var queryData = parseQueryString(_url.toString());
    var p = queryData['http://localhost/new_logic/test.php?a'];
    alert(queryData);
    var q = queryData['b'];
</script>

var\u url=window.location
警报(_url);
var queryData=parseQueryString(_url.toString());
变量p=queryData['http://localhost/new_logic/test.php?a'];
警报(查询数据);
var q=queryData['b'];
链接页面的作者创建的
parseQueryString()
函数显然调用了一些不在Chrome上运行的JavaScript代码

这并不意味着Chrome一般不支持QueryString。似乎您已经假定
parseQueryString()
函数本质上是全局函数,并且内置于所有浏览器中。相反,它是作者创建的自定义函数


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

该脚本似乎只希望搜索部分作为输入,但在最新版本的Chrome上对我有效

 <script type="text/javascript">
     var _url = window.location.search;
     alert(_url);
     var queryData = parseQueryString(_url.toString());
     var p = queryData['a'];
     alert(p);
     var q = queryData['b'];
     alert(q);
 </script>

在您使用的代码中,“parseQuerySTring”不会为In
http://localhost/new_logic/test.php?a
,因为“a”没有值。也许你应该试试
http://localhost/new_logic/test.php?a=1&b=2&c=3
。现在queryData.a应该返回1、queryData.b2等。

处的parseQueryString有一些错误:

  • 多个
    +
    不会替换为空格
  • 多个未替换的等号会导致内容丢失
  • 空输入将导致键为“”的对象
  • 多个空键不会被丢弃
在下面的函数中,上面的bug已经被删除,并在Firefox3、InternetExplorer7、Opera9和Google Chrome1中进行了测试

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<kv.length){
        if (kv[idx]==="") continue;
        value=kv[idx].split("=");
        key=decode(value.shift());
        (out[key]||(out[key]=[])).push(decode(value.join("=")));
    }
    return out;
}
一些例子:

// Alert all values of the a key:
if (data.a && data.a.length) {
  for (var i=0;i<data.a.length;++i)
    alert(data.a[i]);
}

// Get the first value of a-key:
var value_a = data.a && data.a[0];

// Get the first value of a-key or default:
var value_a = data.a && data.a[0] || "default";
//提醒一个键的所有值:
if(data.a&&data.a.length){
对于(var i=0;i
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<data.a.length;++i)
    alert(data.a[i]);
}

// Get the first value of a-key:
var value_a = data.a && data.a[0];

// Get the first value of a-key or default:
var value_a = data.a && data.a[0] || "default";