ホームページ作成 質問過去ログ

                                Page     953
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼ランダム画像表示方  ふけた少女 05/2/27(日) 21:03
   ┣Re:ランダム画像表示方  Pid 05/2/27(日) 22:41
   ┗Re:ランダム画像表示法  Pid 05/3/1(火) 18:41
      ┗Re:ランダム画像表示法  ふけた少女 05/3/8(火) 21:38
         ┗Re:ランダム画像表示法  debiru 05/3/8(火) 22:13

 ───────────────────────────────────────
 ■題名 : ランダム画像表示方
 ■名前 : ふけた少女
 ■日付 : 05/2/27(日) 21:03
 -------------------------------------------------------------------------
   下のを<HEAD>〜</HEAD>の間に入れて


<SCRIPT Language="JavaScript">
<!--


function randomimage()
{
rimage = Math.floor(Math.random() * 4); //数値は画像の枚数

if (rimage == 0) { img = "a451.jpg" }; //画像のURLをここに書きます
if (rimage == 1) { img = "sayuri1.jpg" }; //相対パスでも、絶対パスでも構いませんが
if (rimage == 2) { img = "a431.jpg" }; //リンク切れの無いように・・・
if (rimage == 3) { img = "a441.jpg" }; //0〜枚数−1まで必要に応じて増やしてください(ここでは4枚)

tag = "<IMG SRC='" + img + "' border=0 ALT='現在4枚からランダム表示しています'>";
};


// end-->
</SCRIPT>


又下のを画像の入れたいところに入れるんですよね???


<SCRIPT Language="JavaScript">
<!--
randomimage();
document.write(tag);
// end-->
</SCRIPT>


これを試したのですが画像が表示されませんでした。
何故でしょうか?画像はGIFの300×300です。
ヨロシクお願いします。
 ───────────────────────────────────────  ■題名 : Re:ランダム画像表示方  ■名前 : Pid  ■日付 : 05/2/27(日) 22:41  -------------------------------------------------------------------------
   このスクリプトはご自分でお作りになったのでしょうか。

・ 特に理由が無いのなら,script 要素には language 属性ではなく type 属性を使って下さい[*1]。
・ 変数を使うときは,最初に必ず var を用いて宣言して下さい[*2]。

<script type="text/javascript">
function randomImage()
{
  var imageList = [ 'a451.jpg', 'sayuri1.jpg', 'a431.jpg', 'a441.jpg' ];
  var n = Math.floor(Math.random() * imageList.length);
  return '<img src="' + imageList[n] + '" alt="">';
}
</script>

>又下のを画像の入れたいところに入れる

<script type="text/javascript">
document.write(randomImage());
</script>

----------

[*1] script 要素は type 属性が必須で,language 属性は非推奨です。JavaScript 1.1 や 1.2 を特に使用するのでなければ,language 属性は必要はありません。

[*2] var を用いずに変数をいきなり初期化すると,その変数はグローバル変数になってしまい,バグの温床になります。また,var で宣言していない変数の値を取得しようとすると当然エラーになります。今回の元スクリプトのように,変数 tag をグローバル変数として扱いたいのであれば,関数外であらかじめ宣言しておくべきです(しかしそれでも,tag というありふれた名前をグローバル変数に付けてはいけません)。

[**] あと,些細な点ではありますが,スクリプト内で「<」「>」を使用する場合はなるべく外部ファイルにして下さい。外部ファイルにした場合,スクリプトに書かれた相対 URI の基準が呼び出し元の HTML 文書になるのに注意。
 ───────────────────────────────────────  ■題名 : Re:ランダム画像表示法  ■名前 : Pid  ■日付 : 05/3/1(火) 18:41  -------------------------------------------------------------------------
   こんなんでも良いかもしれません(某所でのある方のパクリ(いやリスペクト (^^;))ですが)。

<script type="text/javascript">

function SrcList() {
  this.length = 0;
  Array.prototype.push.apply(this, arguments);
}

function RandomSelector() {
  this.image = this[ Math.floor(Math.random() * this.length) ];
}

function RandomImage() {
  SrcList.apply(this, arguments);
}

RandomImage.prototype.putHere = function() { // 手抜きメソッド (^^;)
  RandomSelector.call(this);
  document.write('<p><img src="' + this.image + '" alt=""></p>');
}

//----------------------------------------
// 【使用例】
// 下の例だと,4 つの画像を変数 img1 に,3 つの画像を img2 に格納します。

var img1 = new RandomImage( 'a451.jpg', 'sayuri1.jpg', 'a431.jpg', 'a441.jpg' );
var img2 = new RandomImage( 'b499.jpg', 'sayuri9.jpg', 'a444.jpg' );

</script>


>又下のを画像の入れたいところに入れる

<script type="text/javascript">
// img1,img2 それぞれの中からランダムに画像を一つ選択して表示。

img1.putHere();
img2.putHere();

</script>
 ───────────────────────────────────────  ■題名 : Re:ランダム画像表示法  ■名前 : ふけた少女  ■日付 : 05/3/8(火) 21:38  -------------------------------------------------------------------------
   返事有難うございます。


挑戦しましたがむりでした・・・

何故でしょうか?

サーバーは、ジオです。
↑これのせいでしょうか?
 ───────────────────────────────────────  ■題名 : Re:ランダム画像表示法  ■名前 : debiru  ■日付 : 05/3/8(火) 22:13  -------------------------------------------------------------------------
   何に挑戦したのでしょうか?
JavaScriptは扱えますか?
サーバーは問題ないと思います。
修正後のページかソースを見せてください。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 953