いつも、お世話になっています。
JavaScriptで、分からないことが出ましたのでどなたかよろしくお願いします。
それは、フレーム間でのデータのやり取りでしたら教えていただいたのでが、それとは別に、例えば、親元のページにデータを入力した状態で、リンクをつないで新しく画面が移り変わったときに元のデータ(初めの画面に入力されているデータ)をそのまま新しくリンクされたページに引き継がせれることってできるのでしょうか?
リンクをはることですので、新しくブラウザは開かれない(1つのまま)ということでよろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (6件)

おつかれさまです



JavaScriptをつかってデータの受け渡しを行うためにはCookieを使用するほうほうがあります。

具体的には
----送信側htmlに書くJavaScript---
<script language="javascript">

//テキストフィールドの値を取得する
function getValue(){
 //値を取得する
 var va1 = MyForm.textField1.value
 var va2 = MyForm.textField2.value
 var va3 = MyForm.textField3.value
 //クッキーに書き込む
 setCookie("value1", va1);
 setCookie("value2", va2);
 setCookie("value3", va3);
window.location.href ="../next/nextPage.htm"
}

//Cookieに書き込む
function setCookie(key, val) {
var tmp = key + "=" + escape(val) + "; ";
  tmp += "expires=Fri, 31-Dec-2030 23:59:59;    path=/;";
document.cookie = tmp;

}
</script>



----受信側html(bodyタグでOnLorad()を呼びましょう)--

function OnLorad(){
MyForm2.textField1.value = getCookie("value1");
MyForm2.textField2.value = getCookie("value2");
MyForm2.textField3.value = getCookie("value3");

}

function getCookie(key) {
var tmp1 = " " + document.cookie + ";";
var xx1 = xx2 = 0;
var len = tmp1.length;
while (xx1 < len) {
xx2 = tmp1.indexOf(";", xx1);
tmp2 = tmp1.substring(xx1 + 1, xx2);
xx3 = tmp2.indexOf("=");
if (tmp2.substring(0, xx3) == key) {
return(unescape(tmp2.substring(xx3 + 1, xx2 - xx1 - 1)));
}
xx1 = xx2 + 1;
}
return("");
}


はなはだ簡単ではございますがこれで拾えると思われます

この回答への補足

早速のご回答ありがとうございます。
いただいたソースを参考に組んではいるのですがエラーで「文が正しくありません」「オブジェクトを指定してください」というのが出てしまいます。
おそらく、リンク先のページがフレームでできているため、きちんと指定されていないのと、リンクが5つあるためだと思います。
そこで、一つお聞きしたいのですが、「window.location.href="../next/nextPage.htm"」
では、フレームの指定方法って言うのは必要なのでしょうか?もしそうでしたらどのようにすればいいのでしょうか?
5つリンクがあるのですが、下につなげて書くだけでよろしいのでしょうか?
なにぶん、JavaScriptに携わって2ヶ月で、いまだよく分かりません。
なにとぞ、よろしくお願いいたします。

補足日時:2001/07/27 14:55
    • good
    • 0

おつかれさまです、



window.location.href ="../next/nextPage.htm"
は画面を私が勝手に作ったnextPage.htmに移動するということなので気にせず決り文句ではありません。
すみませんわかりにくくて…

Cookieに書き込むということはそのLocalディレクトリ(Cookieフォルダ)にファイルを作成してそこにセットしたCookieの情報を保存することを意味します。

受け取り側は何も意識せずにgetCookieしてやればよいわけです。

では。
    • good
    • 0

 こんにちは。


 すみません。「CF」がなんであるかは知りませんが、サーバーにプログラムをアップできる環境でしょうか。
 CGI(またはPHPでもASPでもいいです)を使用できれば、ページ間の値の受け渡しは楽なのですが。

この回答への補足

CFとは、COLDFusionといいまして、サーバー側で処理をするものです。
今の環境ですとCGIを使う環境ではないので、どうにかJavaScriptで、できないものかと思っております。何故か締め切ってしまっていますが、下の質問でなにかいい方法がございましたらよろしくお願いします。

補足日時:2001/07/26 18:19
    • good
    • 0

失礼ながら便乗?です。

申し訳ありません。>obahiro様

HIROYO様>
>2.フォームのhiddenフィールドに持ち回った値を格納し、リンクのonClickで該当フォームをSubmitする。

リンク先が静的なHTMLページの場合もJavaScriptか何かでPOSTデータを受け取る
ことが可能なのでしょうか?よろしければ補足をお願いします。

■GETの字数制限
> (全部で半角256文字だったかな?)
ほんとに、何文字だったでしょう?たしか、OS依存だったとは思うのですが、Windows
でのGET文字列の制限をご存じの方、教えていただけませんか。
    • good
    • 0

私が思いつく限りでは、URLに引数を持たせるのが簡単かな、と思います。


FORMデータのGETでの受け渡しと同様に、
http://www.xxx.jp/linkto.html?name1=data1&name2= …
とかいう感じでリンクすれば、リンク先のページ内でJavaScriptの
location.search で ?以降が拾えるはずです。

ただし、日本語などの2バイト文字を含める場合は、送る前にescape関数などで
HTMLエンコードしてあげて、受け取ってからunescape関数でデコードしてあげる
必要があるかと思います。(が、ブラウザによってescape、unescapeはバグや
仕様の食い違いが・・・・。なので、この場合もしかしたらダミーで「見た目
単独ページに見えるフレームページ」を作ってフレーム間でデータやりとりした方が)
楽かも・・・・。

何か、ほかに良い方法がありましたら私も興味がありますのでお願いします。
    • good
    • 0

方法としては2種類。



1.getデータとして引き渡す。
 リンクのURLを、***.html?name1=value&name2=value2といったようにくっつけて渡します。
 ただし、字数制限があります。
 (全部で半角256文字だったかな?)
2.フォームのhiddenフィールドに持ち回った値を格納し、リンクのonClickで該当フォームをSubmitする。
 POSTデータになるので、1.と違い字数制限はありません。
 フレームを使っている場合は、ターゲット指定(どこのフレームにデータを渡すか)の指定を、キチンと管理してあげる必要があります。

# CFを使ってるんでしたっけ?
# そちらを使って良いのであれば、Session変数とか、ク
# ライアント変数を使うって言う手もありますよ。

この回答への補足

HIROYOさんのご回答を参考とさせていただこうと思いましたが、今の状況ですと難しいです。
それは、まずリンクのはり方にあるのですが、5つ帳票があり、そのうちの一つをラジオボタンで選びボタンを押すことによってリンクをはるようにしています。しかも、リンク先も全てフレームページになっており、困っています。
もしよろしければ、CFのセッション変数・クライアント変数について少し教えていただきたいのですが・・・リファレンスを見ても載っていなく途方にくれてしまっています。よろしくお願いいたします。

補足日時:2001/07/26 16:54
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

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

Qword 罫線 表 改頁

WORDで表を作ってその表のタイトルで改頁
などしたりしているうち
後でその改頁を削除しようとすると表の中に改頁表示が
埋めこまれて削除不可能になったりします。

きちんと改頁をとるにはどう操作すればよいのでしょうか。
よろしくお願いいたします。

Aベストアンサー

No1の者です。
いろいろ試してみたんですが、おっしゃるような現象は起こりませんでした(^^;)。できましたら、下記を教えてもらえませんか?
○Wordのバージョン
○OSの種類(Windows98とか)
○何行何列の表をいくつぐらい作成したのか。
○もし、「どういうときに起こりやすいか」というのがわかりましたら、より詳しく教えて下さい。

Q「インラインフレームにリンク」と「ページトップへのリンク」の2つのリンク要素をもたしたいのですが…

ページの上部に、インラインフレームでバックナンバーを表示させているページを作っています。そのページをずっとスクロールした下の方で、そのバックナンバーをインラインフレーム内で表示するリンクをはったのですが…問題が。。
インラインフレーム内はちゃんと、リンクしたページにジャンプしているのですが、リンクを張ったところがページの下の方なので、自分でページの上部に移動しなくてはかわったかどうか気づけないんです。。

インラインフレームへのターゲット指定でのリンクとページトップへの移動、、この二つを一緒にできないでしょうか?

Aベストアンサー

>>ANo.2の
>くっつければいいとおもうよ

><a hrref="1" a hrref="2">
じゃなく「<a href="00.html#top">」のように。


>javascriptのtop移動を置いてみたら、なぜか別ウインドウでインラインフレームに入れる要素のhtmlが開いたり、、。インラインフレームにリンクしてるとjavascriptのclass指定は効かないんですかね?

は、どんな処理を入れているのか不明の為、詳細はわかりませんが、JavaScriptでclass指定は効きますよ。
たぶん、JavaScriptが正しくないかと。

Qwordで印刷の頁順を変えたい

wordでB5の文書4Pの倍数を作りB4用紙に出力する時
(以後4pの倍数)

通常文書を作成しますと

1頁目
2頁目
3頁目
4頁目
---
5頁目
6頁目
7頁目
8頁目
---
:
:
となりますが

これを下記の順序で印刷する事可能でしょうか
4頁目
1頁目
2頁目
3頁目
---
8頁目
5頁目
6頁目
7頁目
---
:
:
逆頁で印刷というのはあるようですが

1頁づつ移動して行えばできなくはないのですが
修正が入った時などズレを気にしなくてはならず
困っています。

良い方法があったら教えて下さい。
宜しくお願い致します。

Aベストアンサー

ファイル→印刷で
ページを指定して印刷の欄に、印刷したいページを
「4,1,2,3,8,5,6,7」と指定すればその順番で印刷します。(Word2000の場合)

Qスクリプトを入れるとIEのセキュリティーにひっかかるので、それをなくす方法を教えて下さい。

こんばんわ、
初めてjava scriptを使用したのですが、IEで表示させると上の方にセキュリティの
警告が出てそれをクリックして承諾しないとjavaがきちんと動きません。
この警告がでないようにする方法ってあるのでしょうか?
自分のパソコンにではなく、誰のパソコンで見てもです。よろしくお願いいたします。

Aベストアンサー

java script じゃなくて JavaScript です。Java とも全くの別物です。
意味取り違えると面倒なことになりますからご注意を…(苦笑)
http://e-words.jp/w/Java.html
http://e-words.jp/w/JavaScript.html

> 初めてjava scriptを使用したのですが、IEで表示させると上の方にセキュリティの
> 警告が出てそれをクリックして承諾しないとjavaがきちんと動きません。
> この警告がでないようにする方法ってあるのでしょうか?
アップロードすれば警告は出てこないようになります。

> 自分のパソコンにではなく、誰のパソコンで見てもです。よろしくお願いいたします。
むしろ自分のパソコンの中に保存したファイルでコレを実行するのが面倒な話です。
不可能とかそういう問題じゃなくてそこまでする必要ないということ。ご安心ください(笑)

参考URL:http://kikitai.teacup.com/kotaeru.php3?q=1862159

QWORDで中綴じ用の頁番号を付けるには?

WORDで中綴じ用の頁番号を付けることは可能でしょうか?

中綴じの場合、例えば、全部で16頁あったとすると、一枚面の用紙の表側は第1頁と第16頁(の2頁)、裏側は第2頁と第15頁(の2頁)のような頁番号になると思いますが、このような形で頁番号を表示し、かつ、その頁番号に該当する頁内容をプリントするにはどうすればよいでしょうか? 自動的に行う方法があるのでしょうか?

Aベストアンサー

次のような方法があります。

1) 印刷するページの順番を指定して印刷する。
2) プリンタの「冊子印刷」機能を利用する。
3) Wordの小冊子印刷機能を利用する。

「用紙の両面に印刷し、綴じて製本する」
http://pc.nikkeibp.co.jp/pc21/tech/word50/36/index.shtml

「「Word」 による「小冊子」の作成」
http://www1.odn.ne.jp/nsc-ob/cont203.htm

「小冊子を印刷する」
http://office.microsoft.com/ja-jp/word/HP030729491041.aspx

Qサブウィンドウのリンクに応じて親ウィンドウのセレクトメニューにデータを反映させる

よろしくお願いします。

子ウィンドウ側の地下鉄南北線という文字リンクをクリックすると
00:北24条駅","01:札幌駅","02:大通駅"が親ウィンドウのセレクトメニューに反映されるように変えたいのです。下記のスクリプトを使ってどのように親ウィンドウと子ウィンドウに分ければいいのでしょうか?
駅名の数はそれぞれのリンクによって違います。

<html>
<head>
<title>セレクトメニューで選択したものに応じて2つめのセレクトメニューに反映させる</title>
<script language="JavaScript" type="text/JavaScript">
<!--
var data = new Array(":交通",":地下鉄南北線",":地下鉄東西線",":地下鉄東豊線");
var data0 = new Array(":---");
var data1 = new Array("00:北24条駅","01:札幌駅","02:大通駅");
var data2 = new Array("10:西18丁目駅","11:西11丁目駅","12:大通駅","13:バスセンター前","14:東札幌");
var data3 = new Array("20:札幌駅","21:大通駅","22:豊水すすきの");

function SetList(objid, arr){
var obj = document.getElementById(objid);
for(i=obj.length; i>=0; i--){ obj.options[i] = null; }
for(i=0; i<arr.length; i++){
var a = arr[i].split(":");
obj.options[i] = new Option(a[1], a[0]);
}
}
//-->
</script>
</head>
<body onLoad="SetList('sel0', data);">
<form name="form1">
<select id="sel0" name="sel0" style="width:160px;" onChange="SetList('sel1', eval('data' + this.selectedIndex))">
<option>---</option>
</select>
<select id="sel1" name="sel1" style="width:160px;">
<option>---</option>
</select>
</form>
</body>
</html>

どなたか教えていただける方がいましたらどうぞよろしくお願いいたします。

よろしくお願いします。

子ウィンドウ側の地下鉄南北線という文字リンクをクリックすると
00:北24条駅","01:札幌駅","02:大通駅"が親ウィンドウのセレクトメニューに反映されるように変えたいのです。下記のスクリプトを使ってどのように親ウィンドウと子ウィンドウに分ければいいのでしょうか?
駅名の数はそれぞれのリンクによって違います。

<html>
<head>
<title>セレクトメニューで選択したものに応じて2つめのセレクトメニューに反映させる</title>
<script language="JavaScript" type="text/Ja...続きを読む

Aベストアンサー

子ウィンドウで文字リンクをクリックした時に
window.opener.関数名
で親ウィンドウの関数を呼べば良いと思います。
親ウィンドウの関数は
function fromChildWindow(flg)
として、子ウィンドウで呼ぶときにflgに選択したリンクを示す値を入れれば良いと思います。
後は、親ウィンドウの関数でflgを使って処理を行えばよいと思います。

私などより全然きれいなスクリプトのソースですね。
こっちも勉強になりました。

QWord2010の頁番号の付け方で質問です

Word2010で、5頁の文書を作りました。1~3頁まで頁番号を付け、4頁と5頁には付けないという事は出来るでしょうか?3頁文末にセクション区切りを挿入して試してみましたが、上手くいきませんでした。宜しくお願いします。

Aベストアンサー

まず、「挿入」→「ヘッダーとフッター」→「ページ番号」で、ページ番号を挿入します。
この状態では、4ページと5ページにもページ番号が入っていると思います。

次に、4ページのページ番号が入っているフッターの部分にカーソルを置いて、「ヘッダー/フッターツール」「デザイン」→「ナビゲーション」の中の「前と同じヘッダー/フッター」をクリックします。
これで、4ページと5ページのページ番号が消えるはずです。

Qデータバインド機能でand検索をしたいので方法をご教授ください

よろしくお願いいたします。

現在、データバインド機能を使用して検索画面を作っております。
javascriptは初心者なので手探りで作っておりますが、

イメージとしましては
(1)複数項目をドロップダウンメニューで選択しアンド条件で絞込みます。
(2)その結果をテーブルとして表示したいのです。
(3)テーブルは最初から表示されていなくて、テーブルヘッダーの部分だけを表示させておきたい。
(4)オールクリアのボタンをクリックするとまたもとの状態のテーブルヘッダーだけを表示する。

といった感じです。

初心者なのでまったくわかりません。
ソースは以下になります。

ご教授よろしくお願いいたします。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=Shift_JIS">

<TITLE>データバインドル</TITLE>
<script language="javascript">
<!--

function ShowTable()
{
//selectにて選択された値を取得します。
var nIndex;
nIndex = document.frmSample.selNumber.value;

//データにフィルタをかけます。
objDataBind.FilterValue=nIndex;
objDataBind.FilterColumn="num";
objDataBind.FilterCriterion="=";
objDataBind.Reset();
}
//-->
</script>
</HEAD>
<BODY>


<FORM name="frmSample">
<SELECT NAME="selNumber">
<OPTION SELECTED VALUE="1">1
<OPTION VALUE="2">2
<OPTION VALUE="3">3
<OPTION VALUE="4">4
</SELECT>
<INPUT TYPE="button" value="データを表示" onClick="ShowTable()">
<SELECT NAME="seltitle">

<OPTION VALUE="うさぎ">うさぎ
<OPTION VALUE="かめ">かめ
<OPTION VALUE="ねこ">ねこ
<OPTION VALUE="いぬ">いぬ
</SELECT>
<INPUT TYPE="button" value="データを表示" onClick="ShowTable()">
</FORM>


<OBJECT classid="clsid:333c7bc4-460f-11d0-bc04-0080c7055a83" id="objDataBind" height="0" width="0">
<PARAM NAME="DataURL" VALUE="base.csv">
<PARAM NAME="UseHeader" VALUE="true">
<PARAM NAME="FieldDelim" VALUE=",">
<PARAM NAME="CharSet" VALUE="shift_jis">
</OBJECT>

<TABLE DATASRC="#objDataBind" BORDER="1" ID="tblData">
<thead>
<TR>
<Th><div>番号</div></Th>
<Th><div>タイトル</div></Th>
</TR>
</thead>
<TBODY>
<TR>
<TD><DIV datafld="num"></DIV></TD>
<TD><DIV datafld="title"></DIV></TD>
</TR>
</TBODY>
</TABLE>


</BODY>
</HTML>

csvファイルは以下のとおりです。

num,title
1,うさぎ
2,かめ
3,ネコ
4,犬
5,かめ

よろしくお願いいたします。

現在、データバインド機能を使用して検索画面を作っております。
javascriptは初心者なので手探りで作っておりますが、

イメージとしましては
(1)複数項目をドロップダウンメニューで選択しアンド条件で絞込みます。
(2)その結果をテーブルとして表示したいのです。
(3)テーブルは最初から表示されていなくて、テーブルヘッダーの部分だけを表示させておきたい。
(4)オールクリアのボタンをクリックするとまたもとの状態のテーブルヘッダーだけを表示する。

といった感...続きを読む

Aベストアンサー

すみません、言葉が少し足りてなかったかもしれないです。
 //データにフィルタをかけます。
 以降の4行を消してから
と書く予定でした・・・

↓こんな感じに(目的の動作が分からないので例として適切か分かりませんが応用してください)

function ShowTable()
{
//selectにて選択された値を取得します。
var nIndex,tIndex;
nIndex = document.frmSample.selNumber.value;
tIndex = document.frmSample.seltitle.value;
//データにフィルタをかけます。
objDataBind.Filter="num=" + nIndex + "&title=" + tIndex;
objDataBind.reset();
}


あと、これでもだめなら、私も違いがよくわかってませんが
objDataBind.object.Filter="num=" + nIndex + "&title=" + tIndex;
objDataBind.object.reset();
とかも試してください。

すみません、言葉が少し足りてなかったかもしれないです。
 //データにフィルタをかけます。
 以降の4行を消してから
と書く予定でした・・・

↓こんな感じに(目的の動作が分からないので例として適切か分かりませんが応用してください)

function ShowTable()
{
//selectにて選択された値を取得します。
var nIndex,tIndex;
nIndex = document.frmSample.selNumber.value;
tIndex = document.frmSample.seltitle.value;
//データにフィルタをかけます。
objDataBind.Filter="num=" + nIndex +...続きを読む

Q宇多田ヒカルの最近の画像!!

今日、Mステーションに宇多田ヒカルが出演しましたが、仕事で見れませんでした…(泣)
宇多田ファンの自分としては大ショックです…

色々なサイトで、宇多田ヒカル太った!と話題になってますが、最近の宇多田ヒカルの画像が見たいです!

仕事が忙しく、テレビ見れなくて…

今日のMステの出演時の画像や最近の画像があれば、よろしくお願いいたします!!

Aベストアンサー

今公式サイトなどで映像配信してますよ。
期間限定だったと思いますが、ギターで弾き語りをしているとか・・・。
私はまだ見ていないのですが、多分つい最近撮られたものだと思いますので、ごらんになってみては?

参考URL:http://www.toshiba-emi.co.jp/hikki/

Qリンク先のJavaScriptを実行するリンク

a.htmには以下のようなJavaScriptが記載されています。

<a href="javascript:c_click(1)">test</a>

a.htmの中にはclick内の数字が1~50程度のリンクがあり、
数字に応じて異なるJavaScriptが実行されるページです。



b.htmからa.htmの上記の<a href="javascript:c_click(1)">test</a>が実行されるリンクを作ることは可能なのでしょうか。

たとえば、b.htmに以下のようなHTMLを記述することを想定しています。

<a href="a.htmのjavascript:c_click(1)">test</a>

Aベストアンサー

要件が以下の通りとします。

1. b.htm のリンクを押す
2. 遷移先または子画面として a.htm が開く
3. b.htm から渡された引数をもとに、関数 c_click が実行される
4. これ以降で、両者のやり取りは無い

この場合なら、a.htm の URL に引数を付けて実行が一番簡単です。
ブラウザによるキャッシュが利くので、即応性を求めないならこれが一番でしょう。

/* --- b.htm --- */
<a href="a.htm?q=1">画面遷移で開く</a>
<a href="a.htm?q=1" name=nameA>新しいタブで開く</a>

/* --- a.htm --- */
<script>(function(){
var s = window.location.search;
if (s && s.length > 1) {
var ps = s.substr(1).split('&');
ps.forEach(function(p){
var kv = p.split('=');
if (kv[0] == 'q') c_click(unescape(kv[1])); // c_click('1') を実現
});
}
})();</script>

もし開いた後でもやり取りがしたい場合は、ポップアップ形式の window.open なら可能ですが、最近の潮流ではセキュリティー観点から面倒なことになるのでお勧めしません。

要件が以下の通りとします。

1. b.htm のリンクを押す
2. 遷移先または子画面として a.htm が開く
3. b.htm から渡された引数をもとに、関数 c_click が実行される
4. これ以降で、両者のやり取りは無い

この場合なら、a.htm の URL に引数を付けて実行が一番簡単です。
ブラウザによるキャッシュが利くので、即応性を求めないならこれが一番でしょう。

/* --- b.htm --- */
<a href="a.htm?q=1">画面遷移で開く</a>
<a href="a.htm?q=1" name=nameA>新しいタブで開く</a>

/* --- a.htm --- */
<script>(func...続きを読む


人気Q&Aランキング

おすすめ情報