アプリ版:「スタンプのみでお礼する」機能のリリースについて

あるページにボタンを用意し、そのボタンをクリックすることで、
新しいウィンドウが開くようにしました。
あるページを001.html ,新しいページを002.htmlと仮にします。

001.htmlのボタンのフォームのトコロに、hiddenで
たとえば、「この文章を渡す」と記述しておきます。
そして、新しく開いたウィンドウの中のフォームにhidden
で渡したいのですが、どのようにしたらいいのですか?


文章記述が曖昧でごめんなさい。補足要求があれば、
しますので、お願いします。

001.htmlにたとえば数学の問題があったとします。そうして、
その問題に対して質問があれば、そのページのボタンを
クリックして質問してもらいたい。そのときに、何の問題かを
毎回書いてもらうのは面倒だと思い質問したのです。

A 回答 (9件)

代入ならjavascriptで可能ですね。



#7の001.htmlはこんな感じで改良しました。
(001.html)
<html>
<head>
<script type="text/javascript">
<!--
var title = "この文章を渡す"
function substitute()
{
document.f1.msg.value = title;
}
-->
</script>
</head>
<body onload = "substitute()">
<form name = "f1">
<input type = "button" value = "送信"
onclick = "window.open( '002.html?msg=' + escape( document.f1.msg.value ), '_blank',
'width=200,height=200,status=no' )">
<input type = "hidden" name = "msg">
</form>
</body>
</html>

002.html変更無し。
今回は#6の環境+Mozilla1.4でも確認済みです。
    • good
    • 0

javascriptの変数ですね。



あ、よく考えたら子ウインドウから親ウインドウの変数を参照すればよかった。
--001.html---
<script language=javascript>
var v1 = "この文章を渡す";
</script>
<form>
<input type="button" onclick='alert(v1)'>
<input type="button" onclick='window.open("002.html")'>
</form>
--002.html---
<form name="f1">
<input type=button onclick="alert(opener.v1)">
</form>
    • good
    • 0

#6です。


ゴメン、補足見落としです。

幅=300,高さ=200,ステータスバー等非表示です。

(001.html)
<html>
<body>
<form name = "f1">
<input type = "button" value = "送信"
onclick = "window.open( '002.html?msg=' + escape( document.f1.msg.value ), '_blank', 'width=300,height=200,status=no' )">
<input type = "hidden" name = "msg" value = "この文章を渡す">
</form>
</body>
</html>

002.htmlは変更無し。

この回答への補足

大変ありがとうございます。データを別のフォームに渡すことができました。ありがとうございました。

何度も何度も改良を重ねて頂いて、私はとてもうれしくうれしく思ってます。

補足日時:2003/08/28 19:06
    • good
    • 0
この回答へのお礼

CGIとかだと、適当にはじめの方に、
$title=**タイトル***;
などと指定しておけば、後で、「$title」が変数として扱えるので、代入とかは楽なのですが、HTMLではどうやってやったらいいのでしょうか?
タイトルを、そのままフォームの「この文章を渡す」のところに代入したいのですが、どうやってやったらいいですか?

お礼日時:2003/08/28 19:10

#2です。


新しいウィンドウって書いてましたね。
すみません。見落としてました。

(001.html)
<html>
<body>
<form name = "f1">
<input type = "button" value = "送信" onclick = "window.open( '002.html?msg=' + escape( document.f1.msg.value ) )">
<input type = "hidden" name = "msg" value = "この文章を渡す">
</form>
</body>
</html>

(002.html)
<html>
<head>
<script type="text/javascript">
<!--
function form(){
var len = location.search.length;
var eql = location.search.indexOf( "msg" );
var rsl = location.search.substring( eql + 4, len );
document.f2.txt.value = unescape( rsl );
}
-->
</script>
</head>
<body onload = "form()">
<form name = "f2">
<input type = "text" name = "txt">
</form>
</body>
</html>

でどうでしょう?
(WinXP+IE6.0,NN7.0,Opera7.11で確認済み)
    • good
    • 0

#1はIE限定でした。


今回は子ウインドウのJavascript変数に渡してみました。
(Windows200+IE5, NN4.78で確認済み)

--001.html---
<form>
<input type="button" onclick='
var w = window.open("002.html");
w.document.v1="この文章を渡す";
'>
</form>
---002.html--
<script language="javascript">
var v1 = "hoge";
</script>
<form name="f1">
<input type=button onclick="alert(v1)">
</form>

この回答への補足

とてもありがとうございます。質問してとてもイイ回答が返ってきてうれしく思っています。

もう一つ質問なのですが、
CGIとかだと、適当にはじめの方に、
$title=**タイトル***;
などと指定しておけば、後で、「$title」が変数として扱えるので、代入とかは楽なのですが、HTMLではどうやってやったらいいのでしょうか?
タイトルを、そのままフォームの「この文章を渡す」のところに代入したいのですが、どうやってやったらいいですか?

補足日時:2003/08/28 19:10
    • good
    • 0

また間違えた。



document.f1.msg2.value = escape( document.f1.msg1.value );

だった。

ごめんなさい。
    • good
    • 0

#2です。


ちょっと訂正。
document.f1.msg2.value = escape( document.f.msg.value );

ではなくて

document.f1.msg2.value = escape( document.f1.msg.value );

でした。
    • good
    • 0

hiddenで渡したいという要望のようですので。



(001.html)
<html>
<head>
<script type="text/javascript">
<!--
function esc(){
document.f1.msg2.value = escape( document.f.msg.value );
}
-->
</script>
</head>
<body onload = "esc()">
<form action = "002.html" method = "get" name = "f1">
<input type = "submit" value = "送信">
<input type = "hidden" name = "msg1" value = "この文章を渡す">
<input type = "hidden" name = "msg2">
</form>
</body>
</html>

(002.html)
<html>
<head>
<script type="text/javascript">
<!--
function form(){
var len = location.search.length;
var eql = location.search.indexOf( "msg2" );
var rsl = location.search.substring( eql + 5, len );
document.f2.txt.value = unescape( unescape( rsl ) );
}
-->
</script>
</head>
<body onload = "form()">
<form name = "f2">
<input type = "text" name = "txt">
</form>
</body>
</html>

でどうでしょう?

この回答への補足

<form action = "002.html" method = "get" name = "f1">  でページを移るのではなく、指定した大きさで、ステータスバーなどの表示をなくして、新しいウィンドウを開くにはどうしたらいいのですか?

補足日時:2003/08/28 16:57
    • good
    • 0

-- "001.html" ---


<form>
<input type="button" onclick='
var w = window.open("002.html");
w.document.f1.t1.value="この文章を渡す";
'>
</form>

-- "002.html" --
<form name="f1">
<input name="t1">
</form>

この回答への補足

この方法でやってみましたが、代入されませんでした。 教えて頂けますか?

補足日時:2003/08/28 16:02
    • good
    • 0

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