チャット入室方法の改善とフレームセットのカスタマイズについて

このQ&Aのポイント
  • お聞きしますが、チャット等で入室できる方法を改善したいと考えています。現在の方法では、自分のフレーム内からはみ出してしまうため、外部からHTMLだけでやりたいですが、可能でしょうか?
  • また、フレームセットの中の背景色などを他の色にカスタマイズすることはできるのでしょうか?
  • さらに、入室画面から発言画面に飛び、発言した内容を他のフレームに送る方法を実現したいですが、現状では元のチャット画面に戻ってしまうため、困っています。
回答を見る
  • ベストアンサー

<input>

お聞きしますがチャット等で<input type="submit" value="入室" name="submit">で入室できますがこれだと自分のフレーム内からはみ出してしまいます。 CGIを組まないで外部からHTMLだけでやりたいのですが無理でしょうか? ちなみに <form method="post" action="http://" name="enter"> 名前<input type="text" name="user" value="名前"> <input type="submit" value="入室" name="submit"> </form> こんな感じで、これだと <frameset rows="100,*"> <frame src="1.html" name="1"> <frame src="2.shtml" name="2"> </frameset> で、1が先程の入室画面で2を発言後の画面で3を発言画面だとします。 1から3に飛ばし、発言した言葉を2に送るようにしたいのですが1で入室画面を押すと、元の本チャットへ戻ってしまうので困ります。 後、<frameset>の中の背景等を強制的に他の色にしてみせる事はできませんでしょうか?

  • HTML
  • 回答数5
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • takkunnet
  • ベストアンサー率74% (32/43)
回答No.5

勘違いしていたらすいません。 もしかして、 「自分のサイトから他のチャットサイトにCGI等を使用せずにログインできないか?」 ということでしょうか? そういうことなら可能かもしれませんが、著作権の問題が絡んできます。 実装方法としては <form method="post" action="http://" name="enter"> の部分を <form method="post" action="【対象サイトの入室のaction】" name="enter"> とするだけで可能です。 【具体例】 対象チャットの「入室」のところにある「action」が「in.cgi」でそのサイトへのふるパスが「http://hoge.ne.jp/chat/in.cgi」であったすると、自分のサイトの「action」に「http://hoge.ne.jp/chat/in.cgi」と書いてやればよいことになります。 この場合、自分のサイトにCGI実行環境が無くてもチャットを実施することが可能です。 ただし、その場合には相手のサイトが「他サーバからのCGI実行」を許可している必要がありますが、ほとんどの場合は許可されていませんので無理でしょう。。。 あと、著作権の問題についてですがWeb上では「他サイトのコンテンツを自サイトのコンテンツとして使用する」という行為が問題になります。 いろいろしがらみがある問題なので、もし「他サイトへ入室」したいならもろもろの調査をすることをお勧めします。

その他の回答 (4)

回答No.4

一応、#3 補足で提示された先ですが、 ここでの「入室」って、発言ページへの遷移だけですけど・・・??? 当然「発言」はCGIの呼び出しですが。 まぁこの間でのデータの保持方法ですが、端末側での動的ということでスクリプト(JavaScript)の採用となります。 フォームデータの送信を GET で行う事によりデータは URL の一部となります。 後は受けての方で JavaScript により URL の取得,編集により付加していたデータを取り出します。 取り出した後に HTML へ値を編集(変更)します。 別にクッキーを用いても可能です。送信時に送信データをクッキーとして保持し受信側でクッキーを取得・・・。 後は同じく取得したデータで HTML へ値を編集(変更)します。 さらにフレームを利用しての方法も提示しましたが、これは各ファイルのドメインが違ったりとセキュリティの問題で扱えない場合がありますので注意・・・。 で、方法ですが、フレームの枠側のファイルは個々のページが遷移している時でも変わっていません。 これを利用して枠側のファイルにデータを保持してもらう方法です。 window.top なり window.parent で子から親が扱えます。(制限はありますので、個々の処理に注意。ただ今回の変数でのデータ保持程度は可だったと思います。) この様にデータを保持・溜め込む事は可能です。 ただし、サーバではそのデータは届いていなかったり届いていても使われていません。 つまり「入室」しても当人以外にはなんの変化もないという事です。 チャットでよくみる「○○さん、いらっしゃい。」という定型の自動文句はCGIでないと無理です・・・。 それで、「書き込む」という言葉がポイントに! サーバに「書き込む」という処理をCGIと言います。 先に説明しました。 端末側の処理は、HTML や JavaScript です。 端末が CGI でというのは言葉として成立しません。 次にサーバ側ですが、HTML や JavaScript は何もしません。端末が要求するのは、そのファイルを送れという要求です。 サーバ側でなんらかの処理をする物があったら、それはCGIです。というか、しつこい様ですがサーバでの処理のことをCGIと言う訳ですから・・・。 という事で、HTMLのみでという発言は、サーバにて何の処理もしないという事なのですが・・・・・。 >CGIで出力していますが無理矢理HTMLのみで送りたいのです。 これを言葉通り言うと、単にリンクを貼れば良いだけなのですが??? で、目的が達成できないという場合は、判っていると言いつつ判っていないという事なのですけどぉ~ 宿題とか仕掛けが問題なら話は別ですが、 利用するという目的がなんらかある場合は 何をしたいのかが本当に見えているのか不明です。 本当に「入室」とは何か自分としてまとまっているのか。 「入室」によってどの様な変化を求めているのか。 「チャット」とは何か自分として明確化しているのか。 望む動作を実現するには、どの様な情報が必要か洗い出されているか・・・・・。 で、「CGI」とは何か。 サーバとは端末(クライアント)とは・・・等々、理解,イメージできているか・・・。 CGI絡みの事ですから、結構大変だと思いますがぁ・・・。

回答No.3

>CGIのチャットをHTMLタグを使って外部から書き込みたいわけです。 非常に疑問なのですが、何を以って書き込みとするのでしょうか? 言葉をそのまま説明すると、書き込む,読み込むなどの動的処理をする物をCGIと言うのですが・・・。 また、閲覧側が接しているのはCGIが出力したHTML等だったりで・・・。 JavaScript によって、情報の溜め込みは可能です。 アドレスの一部として保持しまわるなりクッキーを使うなりフレームを利用しての他ファイルでの変数での保持などいろいろ考えられます。 ただいずれもその操作している端末に閉じた世界での事です。 チャット(別々の端末で会話)と考えると、情報を共有しないと無理という事で、サーバ側でのデータ処理,保持が必要でしょう。で、その様なサーバ側の処理の仕掛けをCGIというのですが・・・。 逆に言ってしまえば、CGIを組まないという事はサーバ側で処理しないという事でデータの共有がないという事なのですが・・・・・。 (CGIは特定の言語の事でなくて仕組みの事です。)

参考URL:
http://e-words.jp/w/CGI.html
hamachin
質問者

補足

>非常に疑問なのですが、何を以って書き込みとするのでしょうか? >言葉をそのまま説明すると、書き込む,読み込むなどの動的処理をする物をCGIと言うのですが・・・。 >また、閲覧側が接しているのはCGIが出力したHTML等だったりで・・・。 えっとそれは分かってますよ。 CGIで出力していますが無理矢理HTMLのみで送りたいのです。 >JavaScript によって、情報の溜め込みは可能です。 >アドレスの一部として保持しまわるなりクッキーを使うなりフレームを利用しての他ファイルでの変数での保持などいろいろ考えられます。 >ただいずれもその操作している端末に閉じた世界での事です。 >チャット(別々の端末で会話)と考えると、情報を共有しないと無理という事で、サーバ側でのデータ処理,保持が必要でしょう。で、その様なサーバ側の処理の仕掛けをCGIというのですが・・・。 情報の溜め込みとはどういうことでしょうか? こんな感じです。 http://kochi.the-ninja.jp/ (一応、許可はもらっています)

回答No.2

本来の問題点がもしかして違うのかなぁと感じちょっと・・・ >入室画面を押すと、 >元の本チャットへ戻ってしまうので困ります。 非常に気になるこの一文ですが、 そもそも「入室」って何と考えていますか? 単に発言画面へ遷移したいだけなら form の action を変えれば良いだけ・・・。 入力値(名前)も引き渡したいなら発言画面の方で自分の URL に付加されている文字列を取得,編集すればよし・・・(method が GET だったか POST だったか覚えていませんが・・・) ただしその時点ではサーバ側に情報は伝わっていません。 そこで「入室」をどうとらえているのかが・・・。

hamachin
質問者

補足

CGIのチャットをHTMLタグを使って外部から書き込みたいわけです。 何処のチャットでも名前を入れて入りますよね? その名前等をHTMLタグを使って引渡したいわけです。 「入室」をした時点でHTMLタグで自分のサーバー内の3に情報と共に引き渡したいのです。

  • takkunnet
  • ベストアンサー率74% (32/43)
回答No.1

少し質問の意図がわかりづらいので間違っていたらすいません。 要は「CGIなどの動的な仕組みを使わないでJavaScriptとかだけでなんとかならないか?」ということでしょうか? そういう前提で記入します。 結論から言うと無理です。 理由は、JavaScriptとかだと他の端末に情報を送ることができないからです。 自分が開いているブラウザ内だけで自問自答するなら話は別ですが。

hamachin
質問者

補足

確かに質問の内容が分かりづらいですね。 申し訳ございません。 >要は「CGIなどの動的な仕組みを使わないでJavaScriptとかだけでなんとかならないか?」ということでしょうか? はい。そういう事です。 やはり無理ですか・・・。 分かりました。 有難う御座います。

関連するQ&A

  • VBでのInternetExplorerのオブジェクトへのアクセスについて教えてください!

    はじめて質問させていただきます。 現在VB(WHS?)で自動巡回プログラムを作成しております。 その中で2つ、どうしてもできないことがあるので どうぞよろしくお願いいたします。 1)formも存在している中でformに入っていないオブジェクトの指定方法 ---------------------------------  例:  <FORM name="form1" method="post" >   <INPUT type="text">   <INPUT type="button" value="ボタン1">  </FORM>  <INPUT type="ここに文字をセットしたい"><INPUT type="button" value="これを押したい"> ---------------------------------  ボタン1とかかれたボタンには、  CreateObject("InternetExplorer.Application").document.form1.elements(1).click  などでアクセスすることができますが、フォームに入っていないオブシェクトにアクセスできません。 2)frameの向こうがframeで、その先のソースのオブシェクトの指定方法 ---------------------------------  手前のフレーム  <html>  <frameset rows="*,*">   <frame src="f1.htm" name="f1">   <frame src="f2.htm" name="f2">  </frameset>  </html>  ---------------------------------  奥のフレーム  <html>  <frameset cols="*,*"> <frame src="f1-1.htm" name="f1-1"> <frame src="f1-2.htm" name="f1-1">  </frameset>  </html> ---------------------------------  この状態でf1-1.htm上のオブジェクトにアクセス  (ボタンを押したり値をセット)したいのです。  いろいろためしたのですが、どうしてもできず、  投稿させていただきました。  よろしくお願いいたします。

  • FireFoxでJavaScriptのエラーが出ます。

    現在JavaScriptを独学しはじめた者ですが、ご回答の方よろしくお願いいたします。 右側のフレームに文字又は数字を入れてクリックすると左側のフレームに反映されると言うスクリプトです。 IEでは問題なく動作しますがFireFoxだと動作しません。 親フレーム <frameset cols="20%,*"> <frame src="left.html" name="left"> <frame src="right.html" name="right"> </frameset> 左側のフレーム <input type="text" name="answer"> 右側のフレーム <form> <input type="text" name="question"> <input type="button" value="click" onclick="parent.left.answer.value=this.form.question.value"> </form> アドバイスよろしくお願いいたします。

  • 左右に分かれているフレーム間での値の受け渡し

    こんにちは、はじめまして。 左右に分かれているフレーム(右にあるフレームを押下すると、左側のフォーム内の処理が走り、その結果(フラグなど)をサーバに送りたいです。 ソースは以下のようになっています。Javascriptで値の受け渡しをしたいのですが、どのようにすればsubmitができるかわかりません。どなたがご存知の方、よろしくお願いします。 ↓以下ソース↓ ~右側~ <form action="menu.php" method="post" name="form_menu"> <input type="button" value="test" onClick="push();">      省略 </form> <script language="javascript"> function push() {  --ここが分かりません-- ここで左側のフォームに送るフラグ値をセットして  それを左側のフォームにsubmitしたいです。 } </script> ~左側~ <form action="input.php" method="post" name="form_input">      省略 </form> ~フレーム~ <FRAMESET cols="80%,20%" frameborder="0"> <FRAME SRC="input.php" name="frame_input"> <FRAME SRC="menu.php" name="frame_menu"> </FRAMESET>

    • ベストアンサー
    • PHP
  • 1つのformで複数のactionをボタン1つで

    質問です。 1つのformで複数のactionを1つの送信ボタンで実行したいと思っています。 やりたいことは、1つのframeから他の2つのframeにデータを渡すことです。 フレームは以下のように3つに分かれています。 <frameset cols="60%, 40%"> <frame name="test1" src="xxxx.php"> <frameset rows="50%, 50%"> <frame name="test2" src="yyyy.php"> <frame name="test3" src="zzzz.php"> </frameset> </frameset> xxxx.php内のデータをyyyy.php, zzzzphpの2つに渡したいです。 <script language="javascript"> function send(){   document.form1.target = "test2";   document.form1.action = "yyyy.php";   document.form1.submit();   document.form1.target = "test3";   document.form1.action = "zzzz.php";   document.form1.submit(); } </script> <form name ="form1" method="POST" action="yyyy.php"> <input type="hidden" name="string" value="string" > <input type="button" value="送信" onClick="send()"> </form> 現在、上記のように試したり、過去の質問【一つのformから複数のactionを実行】url:http://okwave.jp/qa/q4234502.htmlを参考にしていますがうまくいきません。 わかる方アドバイスお願い致します。

  • javascriptでinput属性の入力

    複数のボタンがあります。 それぞれのボタンによって、value値を変えたいと考えています。 通常であれば <button class='button' type='submit' name='volume' value='350'>350購入</button> <button class='button' type='submit' name='volume' value='450'>450購入</button> という形を利用しますが、理由があり、 type='submit' を使用できません。 そこで、 <input id="button350" type="button" value="350購入" /> <input id="button450" type="button" value="450購入" /> というsubmit属性の無いボタンを使用しながら、「javascriptを使いname value を抽出しsubmitまで持っていく」ことを考えています。 そこで、下記のようなものを2種類(350と450は別の記載方法でテスト)作ってみましたが、いずれもsubmitは出来ますが、value値を渡すことが出来ません。 どのように書けば、name属性にvalue値を渡すことが可能でしょうか? <form action="abc.php" method="post" name="form2" id="form2"> <script> $(function(){ $('#button350').click(function() { $('input[type=\'submit\']'); $('input[name=\'volume\']'); $('input[value=\'350\']'); $('#form2').submit(); }); $('#button450').click(function() { $('input[type=\'submit\'],[name=\'d4_buy_stock_volume2\'],[value=\'450\']'); $('#form2').submit(); }); }); </script> <BR> <BR> <input id="button350" type="button" value="350購入" /> <BR> <input id="button450" type="button" value="450購入" /> </form>

  • 親フレームの変数にアクセス(JavaScript)

    [index.html] <script src="script.js"></script> <frameset rows="50%,*" frameborder="1"> <frame src="content1.html"name="cont1"> <frame src="content2.html" name="cont2"> </frameset> [script.js] var test_text="てすと"; [content1.html] <form> <input type="text" name="in"> <input type="button" onClick="window.parent.test_text = document.forms[0].in.value;" value="IN"> </form> [content2.html] <form> <input type="text" name="out"> <input type="button" onClick="document.forms[0].out.value = window.parent.test_text;" value="OUT"> </form> のようになっています。 「index.html」の「script.js」の変数に、「content.1html」と「content2.html」からアクセスしたいです。 ですが、フレームになっているため、思うような動作をしてくれません。 よろしくお願いします。

  • 隣のフレームへForm情報をまとめて送信する。

    みなさん、はじめして。 自分は以下のようなHTMLファイルを作成しています。 ---------------------------------------------- ファイル名 : call.htm <html> <head><title>call</title></head> <frameset cols="*,*"> <frame name="win01" src="src01.cgi"> <frame name="win02" src="src02.cgi"> </frameset> </html> ---------------------------------------------- :"src01.cgi"を実行した結果、表示されたHTML <html> <head><title>frameA</title></head> <ScriptLanguage = "JavaScript"> <!-- function load_frame(w) { if (w.d1.value!="" && w.d2.value!="" && w.d3.value="") w.submit(); } //--> </script> <body> <form name="data" method="POST" action="src02.cgi"> <input type="text" name="d1"> <input type="text" name="d2"> <input type="text" name="d3"> <input type="hidden name="d4" value="abc"> </form> </body> </html> ---------------------------------------------- :"src02.cgi"を実行した結果、表示されたHTML <html> <head><title>frameB</title></head> <body> xxxxxxxxxxxxxxxxx・・・ yyyyyyyyyyyyyyyyy・・・ zzzzzzzzzzzzzzzzz・・・ </body> </html> ------------------------------------------------ どこかしら下のuruchiさんの質問に似てますね... call.htmを実行した結果表示された左側のフレームにテキストボックス3つにデータを入力し、その結果を画面に右にあるフレームに反映させるにはどのようにしたら、よろしいのでしょうか?(Javascriptで????になっている部分はどのうように記述したらよろしいのでしょうか)

    • ベストアンサー
    • HTML
  • input の画像について

    <input name="return" type="submit" value=" 戻る "> というボタンを画像にしたい場合、 <input type="image" src="img/modorubtn.gif" name="return" alt="戻る"> で良いのでしょうか? これで、動作しない場合は、どのような原因が考えられるでしょうか? よろしくお願いします。

    • ベストアンサー
    • HTML
  • フレームへのデータ渡し

    フレームへ飛ぶまえのファイルの一部 <FORM METHOD=POST ACTION="frame.html" > <INPUT TYPE=HIDDEN NAME="RECID" VALUE="<% = rec.Fields("学籍番号") %>"> <TD BGCOLOR=#FFC0CB><font SIZE="3"><INPUT TYPE=SUBMIT VALUE="入力・変更"></TD> </FORM> 学籍番号がフレームの1つであるup.aspに渡ってselect文で使えるようにしたいのですが、どうすればよいかわかりません。初心者ですのでわかりやすく教えてください。 (frame.html) <frameset rows="30%,70%"> <frame name="up" src="up.asp"> <frame name="down" src="down.asp"> (up.asp) set rec=db.Execute("SELECT * FROM 生徒データ WHERE 学籍番号=" & Request("RECID"))

  • textarea入力された文字をjump先のディレクトリにしたい

    このタイトルではちょっと分かり辛いですね。 leftframeにあるtextareaに会員名を入力すると同じ名前の階層のhtmlへ飛ぶようにしたいのです。それを右フレームに表示できないのです。 例えばabcさんがいた場合、/member/abc/my.htmlになります。 parent指定をしないとleftframeには出てくるのですが・・・ これはframesetなどがまずいのでしょうか? 大きく左右に分けられますが、右には入れ子のように上下2段のframeがあります。 以下にそのソースです。 <html> <head> <title></title> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> </head> <frameset cols="160,1*" frameborder="NO" border="0" framespacing="0"> <frame name="leftFrame" scrolling="NO" noresize src="side2.html"> <frameset rows="1*,24" frameborder="NO" border="0" framespacing="0"> <frame name="home-1" src="top-ordermade.htm"> <frame name="bottomFrame" scrolling="NO" noresize src="frame-3.htm"> </frameset> <noframes> <body bgcolor="#FFFFFF"> <script language="JavaScript"> <!-- function Change(){ url="http://www.○○.co.jp/member/"; wo=document.MY.id.value; parent.home-1.location.href=url+wo+"/my.html"; } // --> </script> <form name="MY"> <input type="text" name="id" size="15"> <input type="submit" value="GO!"onClick="Change()"> </form>  </body>  </noframes> </frameset> </html> どなたか宜しくお願いします。

専門家に質問してみよう