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

下記の様なフレームでページを作成していますが「mainframe」のhtmlファイルをjavaを使用して日時で変化させる方法を教えて下さい。スタートを2003/11/1と定義して経過日数が「7」未満なら「mainframe1.html」、「14」未満なら「mainframe2.html」という感じにしたいのですが可能でしょうか??下記のタグに追加する形でご回答頂けると有難いです。<html><head><meta http-equiv=”Content-Type” content=”text/html; charset=Shift_JIS”><title></title></head><frameset rows=”100,*” cols=”*” frameborder=”NO” border=”0” framespacing=”0”><frame src=”topframe.html” name=”topframe”><frame src=”mainframe1.html” name=”mainframe”><!-- ↑mainframe1.htmlをjavaで自動的に変化させたいです --></frameset><noframes><body></body></noframes></html>

●質問者: kuzuhara
●カテゴリ:ウェブ制作
✍キーワード:HTML Java スタート タグ ファイル
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● masaomix
●25ポイント

http://mitene.jp0.org/index.html

なかなか回答がつかないようですので、

サンプルページを作ってUPしておきました。

ちょっと構成ファイル数が多くなりますので、

言葉で説明するよりも、現物を見た方が早いでしょう。

参考にしてください。

要点は、javascriptはフレームソースに書いても

うまく動かないことがある、というところなんです。

おそらくご質問の主旨もそこにあると思います。

そこで、経過日数によって表示させるページを変えてやるスクリプトは、

mainframe内に読み込むページの方に記述します。

サンプルでは、index.htmlの中で

<frame src=”mainframe0.html” name=”mainframe”>

としてmainframe0.htmlというページを最初に読み込んでいます。

そしてmainframe0.htmlの中に「経過日数によってページを変える」

スクリプトを記述してやるわけなんですね。

動作の概要はmainframe0.htmlのソースを見ていただけばわかると思いますが、

<META http-equiv=”refresh” content=”0; url=・・・・”>

方式の文字列をjavascriptによって吐き出させて

経過日数に応じたページにジャンプさせている。

ただそれだけの話です。

一応IEとOperaで動作チェックしてあります。

こうして、フレームソースに書いてもうまく動いてくれないjavascriptを

別の所で動かして、見かけ上同じ動作を狙っているわけですね。

一種のコロンブスの卵的発想です(笑)

ちなみに、仕事中に即席で作ったファイルですから、

多少の不都合や、わかりにくい点があるかもしれません。

その際はどうかご勘弁くださいね。

なにかありましたら、いわしで聞いてください。

時々チェックしていますので。

ソースは下の

http://mitene.jp0.org/sample.html

から取得してください。

index.html・・・・・・フレームHTML

mainframe0.html・・・javascriptの入っている最初に読み込まれるページ

mainframe1.html・・・1〜6日目に表示されるページ

mainframe2.html・・・7〜13日目に表示されるページ

mainframe3.html・・・14日目以降に表示されるページ

mainframex.html・・・javascript非対応ブラウザのためのページ

topframe.html・・・・上フレームに読み込まれるページ

の7ファイルで構成されています。

それじゃ、ご健闘をお祈りします(^-^)/

http://mitene.jp0.org/sample.html

◎質問者からの返答

大変、親切且つわかり易い回答を有難う御座いました


2 ● andymente
●25ポイント

<!DOCTYPE HTML PUBLIC ”-//W3C//DTD HTML 4.01 Frameset//EN”>

<html>

<head>

<meta http-equiv=”Content-Type” content=”text/html; charset=Shift_JIS”>

<meta http-equiv=”Content-Script-Type” content=”text/javascript”>

<title></title>

<script type=”text/javascript”>

<!--

window.onload = function () {

s_date = new Date();//スタート

s_date.setFullYear(2003);//スタート年

s_date.setMonth(10);//スタート月(元の月から -1 する必要がある)

s_date.setDate(1);//スタート日

n_date = new Date();//比較用の今日の日付

past = (n_date-s_date) / (1000 * 60 * 60 * 24);//経過日数

// 7日未満なら mainframe1.html

if (past < 7) window.top.mainframe.location.href = ”mainframe1.html”;

// 14日未満なら mainframe2.html

else if (past < 14)window.top.mainframe.location.href = ”mainframe2.html”;

}

//-->

</script>

</head>

<frameset rows=”50,*” cols=”*” frameborder=”NO” border=”0” framespacing=”0”>

<frame src=”topframe.html” name=”topframe”>

<frame src=”dummy.html” name=”mainframe”>

<noframes>

<body>

</body>

</noframes>

</frameset>

</html>

質問文にある「java」というのは JavaScript のことだと解釈しましたが、違っていたらすみません。


3 ● Abigail
●20ポイント

http://www.yo.rim.or.jp/~werm/js/sample/js28.html

記載URLにあるJavaScriptを改造して書いてみました。

7未満ならページ1、14未満ならページ2、21未満ならページ3と、いつまでも数字はどんどん増えていきますが。

<head>

<meta http-equiv=”Content-Type” content=”text/html; charset=Shift_JIS”>

<title>

</title>

</head>

<Script Language=”JavaScript”>

<!--

var now = new Date();

var count = new Date(2003,11-1,1);

pass = (Math.floor(((now.getTime() - count.getTime())/(60*60*24*1000))) / 7) + 1;

document.write(’<frameset rows=”100,*” cols=”*” frameborder=”NO” border=”0” framespacing=”0”>’);

document.write(’<frame src=”topframe.html” name=”topframe”>’);

document.write(’<frame src=”mainframe’ + Math.floor(pass) + ’.html” name=”mainframe”>’);

document.write(’</frameset>’);

//-->

</Script>

<noframes>

<body>

</body>

</noframes>

</html>

関連質問


●質問をもっと探す●



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