【问题标题】:How can I get "h" value from the link using javascript? [closed]如何使用 javascript 从链接中获取“h”值? [关闭]
【发布时间】:2013-06-12 03:42:33
【问题描述】:

如何使用 javascript 从 url 中获取“h”值? (ajax、jquery 等)

网址:http://www.youtube-mp3.org/a/itemInfo/?video_id=p8-pP4VboBk

网址内容:

info = { "title" : "Laura Branigan - Self Control", "image" : "http://i.ytimg.com/vi/p8-pP4VboBk/default.jpg", "length" : "5", "status" : "serving", "progress_speed" : "", "progress" : "", "ads" : "", "pf" : "http://ping.aclst.com/ping.php/2452159/p8-pP4VboBk?h=761944", "h" : "83135b0b3cf927b5e6caf1cf991b66b3" };

目的是从external URL获取并打印这个值(h);

83135b0b3cf927b5e6caf1cf991b66b3

【问题讨论】:

  • 很抱歉,您似乎应该阅读一些有关 AJAX 的教程,并在解决此问题之前尝试编写一些 hello world。

标签: javascript jquery ajax parsing jsonp


【解决方案1】:

你可以试试这个。我觉得比较简单

info.h

【讨论】:

  • 是的,但我如何从外部 url 获取这个值?
  • 我无法通过 ajax 访问此网址。我从控制台收到此错误:“XMLHttpRequest 无法加载 youtube-mp3.org/a/itemInfo/?video_id=p8-pP4VboBk”您不能直接从 youtube 网站访问此参数吗?它有什么作用?
【解决方案2】:

您上面的字符串是一个完整的 JavaScript 对象,您可以将其视为一个哈希表或关联键数组,其中 "key":"value" 如果您想索引到此数组或对象,您只需使用它作为键 @987654322 @ 其中 key 可以是 int 或 string 或任何对象

【讨论】:

    【解决方案3】:

    Json 对象完美集成在 javascript 中。

    这意味着对于一个定义:

    var myObject = { "name": "Doe", "parents": {"father": "Louis", "mother": "Ophelia"}};
    

    您可以使用以下语句简单地访问数据:

    var myName = myObject.name;
    var myFather = myObject.parents.father;
    var myMother = myObject.parents.mother;
    

    真的就这么简单。

    准确回答你的问题,确实是info.h

    更新: 如果您的意思是来自 info.pf 网址的 h,那将是

    var h = info.pf.substr(info.pf.indexOf("?h=")+3, 999);
    

    【讨论】:

      【解决方案4】:

      哦!现在我明白你的问题了。 您不知道如何从 url 获取响应到 javascript 变量中。 为此,您需要一个小型 ajax 脚本:

      var youTubeUrl = "http://www.youtube-mp3.org/a/itemInfo/?video_id=p8-pP4VboBk";
      
      var request = makeHttpObject();
      request.open("GET", youTubeUrl, true);
      request.send(null);
      request.onreadystatechange = function() {
        if (request.readyState == 4){
          eval(request.responseText);//this should create the info variable.
          alert(info.h); //<<<---this should be it!
          //TODO: add your code to handle the info.h here.
          }
      };
      
      function makeHttpObject() {
        try {return new XMLHttpRequest();}
        catch (error) {}
        try {return new ActiveXObject("Msxml2.XMLHTTP");}
        catch (error) {}
        try {return new ActiveXObject("Microsoft.XMLHTTP");}
        catch (error) {}
      
        throw new Error("Could not create HTTP request object.");
      }
      

      代码大部分复制自:https://stackoverflow.com/a/6375580/1311434

      请注意,我还没有测试过这段代码,但我希望它能让你朝着正确的方向前进。 确保您可以信任从原始 URL 检索到的代码,因为从其他站点检索到的 eval() 代码有点危险。

      【讨论】:

      • 浏览器 (Chrome) 给出 Access-Control-Allow-Origin 错误。我该如何解决这个问题?
      • 使用“[path-to-chrome]\chrome.exe”启动 chrome --disable-web-security
      • 我试过了,但问题是一样的
      • 奇怪,它对我有用...这是我的路径:"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security
      • 这是我的测试文件:gist.github.com/anonymous/5789615
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-18
      • 1970-01-01
      • 2014-01-21
      相关资源
      最近更新 更多