我很抱歉也许我的问题让任何人都感到困惑..实际上我没有正确的方式来说明以下代码是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
此代码正在打印标题&的值。小时。
但我的实际问题是在var txt =“.....”中给出的代码!实际上来自外部网站......我在这里发布了这个网址:
http://www.youtube-mp3.org/a/itemInfo/?video_id=IN7o2Iy89WQ
你可以看到它有点奇怪......
它看起来像一个json,但它也包含可执行的javascript代码......
希望你能注意到......
我的问题是,我想从外部URL获取var txt ='......'值,无论我尝试失败的逻辑是什么。什么都没有用。我是这个可执行的javascript代码的新手,无法找到通过外部URL加载它的方法..
任何人都可以帮助我知道如何解析.title& .h数据直接通过网址?
请提供任何帮助或建议。
已编辑:
朋友们,我没有办法在我的脚本中连接外部网址以获取obj.title的价值......你有我吗?本脚本使用var txt ='{....}'中的示例代码;我想用url http://www.youtube-mp3.org/a/itemInfo/?video_id=IN7o2Iy89WQ替换它,因为我想从该外部URL获取obj.title值。这是我计划的一部分。
希望这会有所帮助。
答案 0 :(得分: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 here)
答案 1 :(得分: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。这是因为您提供的网址返回结果如下:
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这样做,结果应该有相当稳定的格式,或者你最终可以不断检查它们是否有任何改变。