- 締切済み
文字の貼り付け
JavaScriptで、ある文字をクリックするとメール送信フォーム(別窓のhtml形式)へある文字を貼り付けて表示するとこはできますか? 例えば、 <a href="xx.html" target="_blank">あああ</a> をクリックすると xx.htmlのメール送信フォームを表示し、そのテキスト内に「こんにちは」などの文字を表示しておく。 ※「こんにちは」はいろんな文字を表示させたい
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- kura07
- ベストアンサー率50% (30/59)
IEでは完全に開くまで待つけど、Sleipnirでは待たないようですね… (親ウィンドウ側) <script type="text/javascript"> function sendMessage(_win){ _win.document.form1.test.value = "xx.htmlのフォームに表示させたい文字"; } </script> <input type="button" value="xx.htmを開く" onclick="window.open('xx.html');"> (xx.html側) <body onload="opener.sendMessage(window);"> <form method=POST action="http://~.cgi" name="form1"> <input type=text name="test" value="" readonly> <input type=submit value="送 信"> </form> bodyタグのonload属性は、ページの読み込みが終わってから実行するスクリプトを記述するところであって、この場合、読み込みが終わってから(入力フォームが表示されてから)、親ウィンドウの関数を実行しています。(opener.をつけることで、親ウィンドウの関数を呼び出せます) IEでは動作確認しました。Sleipnirでも試してみてください。
- kura07
- ベストアンサー率50% (30/59)
Sleipnirというブラウザは初めて聞きました… 基本的なスクリプトを使ってるので、ブラウザで出来ないということはないと思うのですが… 分からないのですが、似たような症状を見つけましたので、参考にしてください。
お礼
そうですか。 ちょっとSleipnirの方で聞いてみたいと思います。 スクリプトありがとうございました。 大変助かりました。
補足
恐れ入ります。 Sleipnirの方で確認したところ、 「open直後にopenされていないみたい」と回答され var _win = window.open("xx.html"); の後に alert("hoge"); を入れると動くとのこと。(確かに正常に動きました) で、「子ウィンドウからonloadイベントで親ウィンドウ側の関数を呼ぶやり方」でやれば出来るとの回答を貰いました。 このやり方は、どのように記述すれば良いのか、 もしお解かりならお教え頂けないでしょうか。
- kura07
- ベストアンサー率50% (30/59)
例えば… (親ウィンドウ側) <script type="text/javascript"> function sendStr(){ var _win = window.open("xx.html"); _win.document.form1.test.value = "xx.htmlのフォームに表示させたい文字"; } </script> <input type="button" value="xx.htmを開く" onclick="sendStr();"> (xx.html側) <form method=POST action="http://~.cgi" name="form1"> <input type=text name="test" value="" readonly> <input type=submit value="送 信"> </form> 私のパソコンで動作を確認しました。
お礼
回答ありがとうございました。 IE7 では動作できたのですが、 Sleipnir http://www.fenrir.co.jp/sleipnir/ では表示させたい文字が表示できませんでした。 Sleipnir はIEのエンジンを使用しているみたいですが、 ブラウザによって動作できないなどはあるのでしょうか? 何か対処方法などお分かりでしょうか?
- kura07
- ベストアンサー率50% (30/59)
window.openを使って、ウィンドウを変数に格納するとか… var _win = window.open("xx.html"); //_winじゃなくても勿論OK _win.document.form.name.value = "こんにちは";
お礼
回答ありがとうございました。 _win を xx.htmlで表示させるにはどのようにしたら良いでしょうか? <form method=POST action="http://~.cgi"> <input type=text name="test" value="_win" readonly> #ここにメッセージを入れたい <input type=submit value="送 信"> </form>
お礼
やっと目的のスクリプトを作成することが出来ました。 大変分かりやすく回答頂きまして誠にありがとうございました。