人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

javascriptで、何枚かのバナー画像をランダムに表示するようなサンプルを探しています。
xmlファイルを読んで、画像のパスとリンク先URLを取得でして、ランダムで画像を表示というようなものを探しています。

●質問者: たつ
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● australiagc
ベストアンサー

jQuery の parseXML()メソッド を使って XML をパースし、データを一旦arrayに保存。後は、array 内の Math.floor(Math.random()*array.length) のインデックスにある値を呼び出してみるのはどうでしょう?

あえてツッコむとすれば、javascript を使っているのに何故 JSON を使わず XML を使うのかというところですね。元データがどうしても XML でなくてはいけないのであれば、array ではなく JSON へ変換してから同様の処理を行うというのもありかと。(jQuery XML to JSON Pluginを使って、要素を作る)
(第三章 データを解析し表示しよう:JSONのデータを表示する)


たつさんのコメント
もともと、flash xml と言う形でしたが、仕様変更により、javascriptでxmlファイルにしようという話でしたので、xmlファイルは昔のを使えるようにと思っております。 ページ見させていただきましたが、知識がないため、結構時間掛かりそうです。 回答ありがとうございます。 実際にリンク先のことをやるとどういうことが起きるのでしょうか?イマイチ理解できませんでした。

たつさんのコメント
度重なるコメントすいません。なんとなく理解できてきました。自分のほうでテストしてみます。

australiagcさんのコメント
大丈夫そうですか? ぶっちゃけ、「jQuery XML to JSON Pluginを使って、要素を作る」にある3つめの四角の中の情報だけあれば十分です。要訳すると、 1)$.get('sample.xml', function(xml){}); でXMLファイルをリクエストする。 2)var json = $.xml2json(xml); で、取得したXMLをJSONへ変換。 3)後は、url = json.banners[Math.floor(Math.random()*banners.length)].bannerUrl; みたいな感じで、ランダムでURLが取得できるはずです。

質問者から

頂いた案を試したのですが、
テストはOKでした。
3)がまだ理解できず、今調べております。

var params = location.href.split("?")[1];
params = params.split("&");
var ValId = "null";
for(var i = 0; i < params.length; i++) {
var tmp = params[i].split("=");
if(tmp[0] = "id"){
ValId = tmp[1];
}
}

$(function(){
$.get('sample.xml', function(xml){
var json = $.xml2json(xml);
var $bannerUrl=json.url[i].url;
var $link=json.link[i].link;
url = json.banners[Math.floor(Math.random()*banners.length)].bannerUrl;
s+="";
$("#myfeed").append($(s));
}
}
});
});
今現在、jsはこんな形です。

ローテーションバナーをしようと思っているのですが、なんか違う感じがしたのですが
自分としても説明不足でごめんなさい

誤って質問終了にしておりました。
もし、回答いただけるならお願いします。


関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ