異なるドメインのページに複数のデータを渡す


動作ブラウザ 【 IE:3.0  NN:2.0
Internet Explorer Netscape Navigator DreamPassport iCab
3.0x 4.0x 4.5 5.0x 5.5 2.0x 3.0x 4.0x 4.x 6.0 2 3 2.x
Windows - - -
Macintosh - - -
UNIX - - - - - - - -
Dreamcast - - - - - - - - - - -

ポイント ●送信側 jpURL = "http://www.shiojiri.ne.jp/~openspc/etc/receive2.html"; str1 = document.myFORM.data1.value; str2 = document.myFORM.data2.value; str3 = document.myFORM.data3.value; str = str1 + "," + str2 + "," + str3; location.href = jpURL+"?"+str; ●受信側 str = location.search; str = str.substring(1,str.length); res = str.split(","); for (i=0; i<res.length; i++) document.write(res[i]+"<br>");
説  明 異なるドメイン(IP)、ページにJavaScriptのみでデータを渡すにはlocation.hrefに?を付加し以後に送信したい文字を付け加えます。この時に区切りとなる文字を用意し(,や&など)、複数のデータを区切り文字をはさんで送信します。受け側ではlocation.searchにより?以後の文字を取り出しsprit()を使い指定した区切り文字ごとに取り出します。spilit()を使えば自動的に配列に複数のデータが入るため取り出しも用意になります。 日本語の文字の受け渡しは文字コードの関係上、うまくいかない場合があります。
サンプル <html> <head> <title>異なるドメインのページに複数のデータを渡す</title> <script Language="JavaScript"><!-- function send() { jpURL = "http://www.shiojiri.ne.jp/~openspc/etc/receive2.html"; str1 = document.myFORM.data1.value; str2 = document.myFORM.data2.value; str3 = document.myFORM.data3.value; str = str1 + "," + str2 + "," + str3; location.href = jpURL+"?"+str; } // --></script> </head> <body> <form name="myFORM"> 送信データ1:<input type="text" name="data1"><br> 送信データ2:<input type="text" name="data2"><br> 送信データ3:<input type="text" name="data3"><br> <input type="button" onClick="send()" value="送信する"><br> </form> </body> </html>
補足説明 受け側のスクリプトは以下の通りです。 <HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> 渡された文字は<B> <SCRIPT Language="JavaScript"> <!-- str = location.search; str = str.substring(1,str.length); res = str.split(","); for (i=0; i<res.length; i++) document.write(res[i]+"<br>"); // --> </SCRIPT> </B>です。 </BODY> </HTML>

■サンプルスクリプトを実行する >>実行
■各ブラウザでの動作結果を見る >>View!

写真素材 PIXTA