• 締切済み

更新するたびにバナーが変わる方法

HPをつくる際に更新ごとに画像の変わるページを作りたいのですが、(例えばyahooの右側にあるバナーのように)どのようにすればいいのでしょうか?参考になりそうなサイトを探したのですがわからなかったので、ご教授お願いいたします。

みんなの回答

  • ssr-y6
  • ベストアンサー率71% (5/7)
回答No.2

 ページの更新履歴をJavaScriptを使ってCookieに保存しておき、 それをparamタグを使ってアプレット側に渡すことで更新ごとに画像を切り替えられます。 以下の例では、画像をアプレットで生成していますが、実際は別の場所から読み込むことになるでしょう。 -----ページHTML----- <html> <head><title>image change</title></head> <body><center> <script> var i, j, s1; var cn = "qa1501633"; var s = document.cookie.split("; "); for (i = 0; i < s.length; i ++) { s1 = s[i].split("="); if (s1.length != 2) continue; if (s1[0] == cn) break; }; if (i == s.length) j = 1; else j = s1[1]; document.writeln("<applet codebase='.' code='cookie' width='320' height='80'>"); document.writeln("<param name='cookie' value='" + j + "'>"); document.writeln("</applet><br>"); document.cookie = cn + "=" + (eval(j) + 1) + "; expires=" + (new Date(new Date().getTime() + 86400000)).toGMTString(); document.writeln(document.cookie); </script> </center></body> </html> -----アプレット----- import java.applet.*; import java.awt.*; import java.awt.image.*; import java.awt.geom.*; public class cookie extends Applet { BufferedImage OSI; Graphics2D G; public void init() { OSI = new BufferedImage(320, 100, BufferedImage.TYPE_INT_ARGB); G = (Graphics2D)OSI.getGraphics(); G.setStroke(new BasicStroke((float)10.0)); }; Color MakeColor(int i) { return(new Color((i&4)*0x3FC000+(i&2)*0x7F80+(i&1)*0xFF)); }; public void start() { int i; String s = getParameter("cookie"); try { i = Integer.parseInt(s); } catch (Exception e) { i = 0; }; G.setColor(MakeColor(i)); G.fillRect(0, 0, 320, 100); G.setColor(MakeColor(i * 2 + i / 4)); G.drawRect(0, 0, 320, 100); G.setColor(MakeColor(i * 4 + i / 2)); G.setFont(new Font("Arial Bold", Font.BOLD, 48)); G.drawString("bannar" + s, 10, 90); }; public void paint(Graphics g) { g.drawImage(OSI, 0, 0, getWidth(), getHeight(), this); }; public void update(Graphics g) { paint(g); }; }

  • 2NN
  • ベストアンサー率40% (143/353)
回答No.1

関連するQ&A