【问题标题】:Javascript Get webpage contents into ArrayJavascript 将网页内容放入数组
【发布时间】:2011-03-10 15:03:47
【问题描述】:

好的,我有一个非常独特的 API 用于我运行的服务,其中返回值的显示类似于 JSON(但不是 JSON),并且它适用于大多数语言,但现在我遇到了仅使用 Javascript 访问返回值的问题。

我有一个 PHP 页面,它接受 GET 参数,然后显示如下输出: stapi=0,0,0,0,0,0,0,0&stlinks=Hu3L|http://www.example.com,3Ozq|https://www.example.com

这是网页的唯一输出,我想做的是将这两个变量收集到一个 Javascript 数组中以显示为一个列表。 (我通常将第二个变量收集成匹配对,您可以看到用“|”分隔)

现在我只需要知道如何从输出中收集“变量”并将它们放入一个数组中(这两个页面不会在同一台服务器上) ...

**我想将 stapi 逗号分隔值放入它自己的数组中 然后 stlinks 垂直条匹配对/逗号分隔值到它自己的数组中

【问题讨论】:

  • 你可能想看看this answer 来解析 URL 参数。我不能完全确定这是否是一个重复的问题,因为我不确定您对翻译结果的期望如何——也许您可以用 JSON 表示更新您的问题,说明结果应该如何在 JS 中构造?
  • 我已经看到了这个问题,但是我需要先获取网页内容,然后将 2 个数组和第二个数组分成匹配的对

标签: javascript jquery arrays variables get


【解决方案1】:

试试这个函数用这个管道分割你的字符串:

function splitString(s,ch){
    var n = [];
    var i = 0, j = 0;
    while (i != -1){
        j = i;
        i = s.indexOf(ch,i+1);
        if (i > -1){
            if (j > 0){
                n.push( s.substr(j+ch.length,i-j-ch.length) );
            } else {
                n.push( s.substr(j,i-j) );
            }
        } else {
            n.push( s.substr(j+ch.length) );
        }
    }
    return n;
}

var result = [];

var pairs = splitString("stapi=0,0,0,0,0,0,0,0&stlinks=Hu3L|http://www.example.com,3Ozq|https://www.example.com","|");

var i = 0;

for (i = 0; pairs.length < i; i++){
    var temp = splitString(pairs[i],'=');
    result.push({name: temp[0], value: temp[1]});
}

你需要的东西被打包到结果变量中。

【讨论】:

  • 我如何从 php 页面获取字符串?这就是我面临的问题,我需要先检索页面的内容,然后处理它的数据
  • 你可以使用 jQuery 吗? jQuery.ajax({ url: "my_page.php", 成功: function(data){ } });
  • 好吧,这行得通...我试图使用速记版本:$.get() - 但是现在我认为我面临同源政策的问题,因为正如我所提到的, script 是客户端脚本,而不是服务器脚本,因此它不会在同一台服务器上....因此无法在远程脚本上运行
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-13
  • 1970-01-01
  • 2011-10-19
  • 1970-01-01
  • 1970-01-01
  • 2015-11-11
相关资源
最近更新 更多