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 = "....." 内で指定されたコードです! 実際には外部のウェブサイトから来ています...そのURLをここに投稿しています:

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

あなたはそれが少し奇妙であることがわかります..

それはjsonのようですが、実行可能なjavascriptコードも含まれています...

あなたがそれに気付くことを願っています..

私の問題は、その外部 URL から var txt = '......' の値を取得したいということです。何も機能していません。私はこの実行可能なJavaScriptコードを初めて使用し、その外部URLからロードする方法を見つけることができません..

その .title & .h データを URL から直接解析する方法を教えてくれる人はいますか?

助けや提案をいただければ幸いです..

編集済み:

友人、obj.title の値を取得するためのスクリプトで、その外部 URL を接続する方法がありません ...わかりますか? 現在のスクリプトは、var txt = '{....}'; 内のサンプル コードを使用しています。その外部 URL から obj.title 値を取得したいので、URL http://www.youtube-mp3.org/a/itemInfo/?video_id=IN7o2Iy89WQに置き換えたいと思います。それは私のプログラムの一部です。

それが役立つことを願っています。

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 here )

于 2013-09-28T12:23:18.717 に答える
0

http://www.youtube-mp3.org Web サイトを信頼する場合は 、動的に作成されたタグを使用してそのデータをフェッチし<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.txt ではなく、window.info を確認しています。これは、指定した 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 に答える