0

很抱歉,也许我的问题让任何人感到困惑..实际上我没有正确的说法是以下代码是 javascript 代码还是 json..

查看我制作的示例代码,它运行良好:

var txt = '{ "title" : "Asian Dad: B Again!? (you die)", "image" : "http://i.ytimg.com/vi/IN7o2Iy89WQ/default.jpg", "length" : "2", "status" : "serving", "progress_speed" : "", "progress" : "", "ads" : "", "pf" : "", "h" : "a80b4ceb1ad73a0222ca7a78dc448213" }';

var obj = eval ("(" + + ")");

document.getElementById("fname").innerHTML=obj.title 
document.getElementById("lname").innerHTML=obj.h 

此代码正在打印标题和 h 的值。

但我的实际问题是 var txt = "....." 中给出的代码!实际上来自外部网站...我在此处发布该网址:

http://www.youtube-mp3.org/a/itemInfo/?video_id=IN7o2Iy89WQ

你可以看到它有点奇怪..

它看起来像一个 json,但它也包含可执行的 javascript 代码......

希望你会注意到..

我的问题是我想从外部 url 获取 var txt = '......' 值,无论我尝试的逻辑失败了。没有任何工作。我是这个可执行 javascript 代码的新手,无法找到通过该外部 url 加载它的方法。

谁能帮助我知道如何通过 url 直接解析 .title 和 .h 数据?

请任何帮助或建议将不胜感激..

编辑:

朋友们,我没有办法在我的脚本中连接那个外部 url 来获取 obj.title 的值……你明白了吗?当前脚本在 var txt = '{....}' 中使用示例代码;我想用网址http://www.youtube-mp3.org/a/itemInfo/?video_id=IN7o2Iy89WQ替换它,因为我想从该外部网址获取 obj.title 值。这是我计划的一部分。

希望这会有所帮助。

4

2 回答 2

0
var txt = '{ "title" : "Asian Dad: B Again!? (you die)", "image" : "http://i.ytimg.com/vi/IN7o2Iy89WQ/default.jpg", "length" : "2", "status" : "serving", "progress_speed" : "", "progress" : "", "ads" : "", "pf" : "", "h" : "a80b4ceb1ad73a0222ca7a78dc448213" }';

var obj = JSON.parse(txt);


document.getElementById("fname").innerHTML=obj.title 
document.getElementById("lname").innerHTML=obj.h 

该片段不包含可执行代码,并且工作正常(此处为jsfiddle )

于 2013-09-28T12:23:18.717 回答
0

如果您信任 http://www.youtube-mp3.org网站,您可以使用动态创建<script>的标签获取该数据,并编写一个检查数据是否已经可用的函数。

var script = document.createElement('script');
script.src = 'http://www.youtube-mp3.org/a/itemInfo/?video_id=IN7o2Iy89WQ';
document.body.appendChild(script);

var dataReady = function() {
   if (window.info)   {
       document.getElementById("fname").innerHTML=info.title; 
       document.getElementById("lname").innerHTML=info.h; 
   } else {
       //script haven't loaded yet, try again in half a second
       setTimeout(dataReady, 500);
   }
}
dataReady();

我正在检查 window.info,而不是 window.txt。那是因为您提供的 url 以以下形式返回结果:

info = { "title" : "Asian Dad: B  Again!? (you die)", "image" : "http://i.ytimg.com/vi/IN7o2Iy89WQ/default.jpg", "length" : "2", "status" : "serving",  "progress_speed" : "",  "progress" : "",  "ads" : "",  "pf" : "",  "h" : "154d6f3b7ac53fa2bb9f7cc5011d1c5d"  };

所以,info取而代之的是变量txt

再一次,您必须信任 youtube-mp3.org 才能做到这一点,并且结果应该具有相当稳定的格式,或者您最终可以不断检查它们是否有任何更改。

于 2013-09-28T13:23:22.830 回答