違うフレームページからメッセージ(下の方に記述)を反映させメッセージの最後でsetTimeを使って最後のメッセージを読み込んだときに数秒をおいてスペースのメッセージを上書きして視覚的にメッセージを消したいんですが何か良い方法はありますでしょうか?
動けば丸っきりプログラムが変わってもいいんですが。。
また、初心者なもので質問の仕方が下手です。すみません^^;
------外部JSファイル-----
var win1;
function openwin(){
win1 =window.parent.low1;
}
function loading_mes(message){
win1.focus();
win1.document.open("text/html");
win1.document.write("<HTML><BODY>");
win1.document.write("<H3>" + message + "</H3>");
win1.document.write("</BODY></HTML>");
win1.document.close();
}
------------------------------------
--読み込むページに下記のようなメッセージの違うものを数個HTMLに貼り付ける--
<script type="text/javascript">
loading_mes("■□□□");
</script>
-----------------------------------------
-----最後のメッセージを読み込んだ後に実行させたいこと。----
function test(){
loading_mes(" ");
}

setTimeout("test()",1000); ←できれば、これとtest()を外部に入れたい。
------------------------------------------

A 回答 (1件)

こんな感じなんでしょうか?



(外部jsファイル)
var docFlag=0;
var timeId="";
var outMess=new Array("","aaaaa","bbbbb","ccccc");
function clsMess() {
clearTimeout(timeId);
docFlag=0;
parent.main.location.reload();
}
function docWrite() {
parent.main.document.write("<h3>",outMess[docFlag],"</h3>");
}
function loadMess(f) {
clearTimeout(timeId);
docFlag=f;
parent.main.location.reload();
timeId=setTimeout("clsMess()",3000)
}

(tst002f.html)
<Html>
<Head>
<Title>tst002f</Title>
</Head>
<Script Language="JavaScript" src="tst002.js">
</Script>
<Frameset Cols="30%,*">
<Frame Src="tst002s.html" Name="side">
<Frame Src="tst002m.html" Name="main">
</Frameset>
</Html>

(tst002s.html)
<Html>
<Head>
<Title>tst002s</Title>
</Head>
<Body>
<Form Method="post" Name="sidef">
<Input Type="button" Name="b1" Value="mes1" onClick="parent.loadMess(1);"><br>
<Input Type="button" Name="b2" Value="mes2" onClick="parent.loadMess(2);"><br>
<Input Type="button" Name="b3" Value="mes3" onClick="parent.loadMess(3);"><br>
</Form>
</Body>
</Html>

(tst002m.html)
<Html>
<Head>
<Title>tst002m</Title>
</Head>
<Body>
<Script Language="JavaScript">
<!--
parent.docWrite();
//-->
</Script>
</Body>
</Html>

がんばってくださいね!
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Q<td>の中を移動する、外部JavaScript書き出しのdocument.write

質問タイトルの内容が可能なことなのかどうかもわかりません…(TT)
何卒よろしく切にお願い申し上げます…

やりたいことは、2列テーブルの左部分の範囲を
上下に移動する読み込みmenu.jsです。

現在、営業ツールサイトを制作しています。メニュー部分の
更新が頻繁なのですが、なんとなくフレームを使いたくなかったので、
メニュー部分を外部JavaScript(menu.js)のdocument.write書き出し(?)で
読み込むことにしました。

発注者の希望でalign="center"で真ん中寄せしたレイアウトで
テーブル2列の右に営業ツール一覧テーブル、左にmenu.jsを
呼び出しているのですが営業ツール一覧がかなりロングなことに
なってしまいました。そこで、フローターメニュー(?)の様に
スクロールにくっついてくると素敵だ!と思いました。

しかし検索すればするほど、出てくるのは低位置に留まるタイプの
フローターがメイン…。つまりフローターの位置はXYであらかじめ
決まっている感じが…。(というかソースを見て私が理解できたのが
そうゆうタイプのものでした…動きがフェードイン・アウトする
感じのものは理解不可能…)

このまま記述すると、align="center"のテーブルはウィンドウリサイズで
さっさ移動する、駄菓子菓子フロータメニューは頑なにXY値に留まるから
おかしなことになる。

嗚呼、すみません…なんだか混乱してきてしまいました。。。。。。

やりたいことは、align="center"のテーブルに2列の左部分の範囲を
上下に移動する読み込みmenu.jsです!!

不勉強、もしくは検索能力不足ですみません!!!

何卒、何卒宜しくお願い申し上げますっ!!!

質問タイトルの内容が可能なことなのかどうかもわかりません…(TT)
何卒よろしく切にお願い申し上げます…

やりたいことは、2列テーブルの左部分の範囲を
上下に移動する読み込みmenu.jsです。

現在、営業ツールサイトを制作しています。メニュー部分の
更新が頻繁なのですが、なんとなくフレームを使いたくなかったので、
メニュー部分を外部JavaScript(menu.js)のdocument.write書き出し(?)で
読み込むことにしました。

発注者の希望でalign="center"で真ん中寄せしたレイアウトで
テーブル2...続きを読む

Aベストアンサー

テーブル自体をスクロールしないで、メニュー、ツールのみをスクロールするように変更してみました。
No5の書き込みで書いたやつです。(ヘッダーとフッターはoverflowの指定はしていませんが・・・)

ロード時にスクロールバーが必要かどうか判定を行っています。
短いバージョンのメニューと長いバージョンのメニューで試してみてください。

以下ソースです。
<HTML>
<head>
<script type="text/javascript">
//↓メニューおよび営業ツールのスクロールを表示するかどうか
function ViewScroll() {
  MenuWidth = document.getElementById("menu").offsetWidth;
  MenuHeight = document.getElementById("menu").offsetHeight;
  MenuDivWidth = parseInt(document.getElementById("menuDIV").style.width);
  MenuDivHeight = parseInt(document.getElementById("menuDIV").style.height);
  ToolWidth = document.getElementById("tool").offsetWidth;
  ToolHeight = document.getElementById("tool").offsetHeight;
  ToolDivWidth = parseInt(document.getElementById("toolDIV").style.width);
  ToolDivHeight = parseInt(document.getElementById("toolDIV").style.height);
  
  //初期化(スクロールを隠す)
  if (document.all) {
    //IE
    document.getElementById("menuDIV").style.overflowX = "hidden";
    document.getElementById("menuDIV").style.overflowY = "hidden";
    document.getElementById("toolDIV").style.overflowX = "hidden";
    document.getElementById("toolDIV").style.overflowY = "hidden";
  } else {
    //IE以外
    document.getElementById("menuDIV").style.overflow = "hidden";
    document.getElementById("toolDIV").style.overflow = "hidden";
  }
  
  if (MenuWidth > MenuDivWidth) {
    //メニューの幅が、メニューDIVの幅を超えたとき(スクロールを出す)
    if (document.all) {
      //IE
      document.getElementById("menuDIV").style.overflowX = "scroll";
    } else {
      //IE以外
      document.getElementById("menuDIV").style.overflow = "scroll";
    }
  }
  
  if (MenuHeight > MenuDivHeight) {
    //メニューの高さが、メニューDIVの高さを超えたとき(スクロールを出す)
    if (document.all) {
      //IE
      document.getElementById("menuDIV").style.overflowY = "scroll";
    } else {
      //IE以外
      document.getElementById("menuDIV").style.overflow = "scroll";
    }
  }
  
  if (ToolWidth > ToolDivWidth) {
    //ツールの幅が、ツールDIVの幅を超えたとき(スクロールを出す)
    if (document.all) {
      //IE
      document.getElementById("toolDIV").style.overflowX = "scroll";
    } else {
      //IE以外
      document.getElementById("toolDIV").style.overflow = "scroll";
    }
  }
  
  if (ToolHeight > ToolDivHeight) {
    //ツールの高さが、ツールDIVの高さを超えたとき(スクロールを出す)
    if (document.all) {
      //IE
      document.getElementById("toolDIV").style.overflowY = "scroll";
    } else {
      //IE以外
      document.getElementById("toolDIV").style.overflow = "scroll";
    }
  }
}

</script>
</head>
<!--ロード時にスクロールバーを表示するかどうかを決定-->
<body onLoad="ViewScroll()">

<table width="750" border="1" cellspacing="0" cellpadding="0" align="center" bgcolor="#909090">
<tr>
<td colspan="3" align="center" valign="top" bgcolor="00ff00">
    ヘッダーをJavascriptで呼んできてます。
</td>
</tr>
<tr>
<!--テーブルに高さをつけました。サイズは適当に変えてください-->
<td align="left" valign="top" width="230" height="500">
<!--DIVに高さと幅ををつけました。サイズは適当に変えてください(メニューテーブルと同じサイズにしてください)-->
<div id="menuDIV" style="top:0px; left:0px; width: 230px; height: 500px; position:relative; background-color: #ff0000; overflow: scroll;">
<!--スクロールバーを表示するかどうか判定するためにもうひとつDIVをはさみました-->
<div id="menu">
メニューをJavascriptで呼んできてます。
どっこい多分ここで呼ぶmenu.jsのテーブルが長いのか、
スクロールするとなぜか底なし沼になります…
</div>
</div>
</td>
<td width="10"></td>
<!--テーブルに高さをつけました。サイズは適当に変えてください。-->
<td align="left" valign="top" width="505" height="500">
<!--DIVに高さと幅ををつけました。サイズは適当に変えてください(ツールテーブルと同じサイズにしてください)-->
<div id="toolDIV" style="top:0px; left:0px; width: 505px; height: 500px; position:relative; background-color: #ffff00; overflow: scroll;">
<!--スクロールバーを表示するかどうか判定するためにもうひとつDIVをはさみました-->
<div id="tool">
<!--↓のDIVは営業ツールの高さ10000ピクセルにするために名義的に入れているもので、削除してください-->
<div style="height: 10000px">ここにローングな営業ツールが入ってます。</div>
<!--↑のDIVは営業ツールの高さ10000ピクセルにするために名義的に入れているもので、削除してください-->
</div>
</div>
</td>
</tr>
<tr>
<td colspan="3" align="center" valign="top" bgcolor="#0000ff">
    フッターをJavascriptで呼んできてます。
</td>
</tr>
</table>
</body>
</HTML>

テーブル自体をスクロールしないで、メニュー、ツールのみをスクロールするように変更してみました。
No5の書き込みで書いたやつです。(ヘッダーとフッターはoverflowの指定はしていませんが・・・)

ロード時にスクロールバーが必要かどうか判定を行っています。
短いバージョンのメニューと長いバージョンのメニューで試してみてください。

以下ソースです。
<HTML>
<head>
<script type="text/javascript">
//↓メニューおよび営業ツールのスクロールを表示するかどうか
function ViewScroll() {
...続きを読む

Qdocument.writeをinput type="text"の value値に

超初心者です。
下記の式にてPHPよりjavascriptにてHTMLに書き出しできましたが
<script type="text/javascript" src="./jsphptest.php?long=3" ></script>この値をHTMLのinput type="text"の value値にデフォルトとして入れたいと思っていますが、どうすればできるのか分かりません。できればボタン等を介さずページをロードすればこPHPからjavascriptのdocument.write値がvalue値に入って欲しいと思っています。簡単なようで難しいことなのでしょうか?どうかご教授よろしくお願いいたします。

Aベストアンサー

それからどうでもいいけど
htmlのタグの順番が適当ですね。

Q外部JavaScriptでのdocument.writeについて

今、JavaScriptを使ってHPを作ろうと思っています。
そこで、外部ファイルとしてJavaScriptを作り、HTML内でsrcを使って読み込んでいます。そのときに問題が発生しているのですが、外部ファイルでdocument.writeを使うと処理が戻ってきません。
例)
....
xxxx="テストJavaScript";
document.write(xxxx);
....
ちなみに、IEで実行した場合はきちんと表示し、NetScapeで実行した場合にずっと通信中になってしまいます。
これはNetScapeの仕様なのでしょうか。
分かりにくい説明で申し訳ありませんが、どなたかご回答お願い致します。

Aベストアンサー

もう、知っているかもしれませんが、ページを読み込んだ後に
document.write()するのは反則ですのでやめておきましょう。
また、document.write()の正しい使い方は以下の通りです。

document.open();
document.write("hoge");
document.close();

そして外部jsファイルは
<script>~</script>や<!--//-->などを書かずに保存していますか?
また外部jsファイルをHTMLから読み出すときは

<script type="text/javascript" src="ファイルのURL"></script>

としましょう。
結構、初歩的なことですが、見直してみてください。

QJavaScript document.writeについて

<ul id="font-size-change">
<li><a href="javascript:void(0)" onclick="setActiveStyleSheet('default'); return false;" />標準</a></li>
<li><a href="javascript:void(0)" onclick="setActiveStyleSheet('large'); return false;" />大</a></li>
</ul>

上記を、JavaScriptの「document.write」を使って表示しようと、下記のコードを書きました。

function fontSizeChange(){
document.write('<ul id="font-size-change">');
document.write('<li><a href="javascript:void(0)" onclick="setActiveStyleSheet');
document.write("('default'); ");
document.write('return false;" />標準</a></li>');
document.write('<li><a href="javascript:void(0)" onclick="setActiveStyleSheet');
document.write("('large'); ");
document.write('return false;" />大</a></li>');
document.write('</ul>');
}

とっても効率が悪い記述だと思うのですが、
もっとシンプルで効率の良い書き方はないでしょうか。

よろしくお願いします。

<ul id="font-size-change">
<li><a href="javascript:void(0)" onclick="setActiveStyleSheet('default'); return false;" />標準</a></li>
<li><a href="javascript:void(0)" onclick="setActiveStyleSheet('large'); return false;" />大</a></li>
</ul>

上記を、JavaScriptの「document.write」を使って表示しようと、下記のコードを書きました。

function fontSizeChange(){
document.write('<ul id="font-size-change">');
document.write('<li><a href="javascript:void(0)" onclick="setActive...続きを読む

Aベストアンサー

document.write("<ul id='font-size-change'>
<li><a href='javascript:void(0)' onclick='setActiveStyleSheet(\"default\"); return false;' />標準</a></li>
<li><a href='javascript:void(0)' onclick='setActiveStyleSheet(\"large\"); return false;' />大</a></li>
</ul>");
これでいけますよ。
囲むときは
"→'→\"
で囲めます。
改行したいなら他の回答者さんのように+を使って区切ってくださいね

Qdocument.write その2

w = (new Date()).getDay();
m = (new Date()).getMonth();
d = (new Date()).getDate();

if(w == 0) document.write("OKえて、GOO!");

毎週日曜日に表示するスクリプト(詳細省略)ですが、
9月9日(日)まで表示して、以後の日曜日には表示しないようにするには
if( ) の部分はどういう設定になるのでしょうか?

また、こういうことを自分で調べられるようなURLを紹介いただければ幸いです。
よろしくご教授お願いします。

Aベストアンサー

:
var et = new Date("2007/09/10 00:00:00").getTime();
var now = new Date().getTime();
if(w == 0 && now < et){
//表示
}
:

のようになると思います。
(毎年の9/9だと話が別ですが)

参考URLの上位パスは
http://www.tohoho-web.com/js/index.htm
です。

参考URL:http://www.tohoho-web.com/js/date.htm


人気Q&Aランキング

おすすめ情報