javascriptから外部実行ファイル(javascriptファイルではなくperlなどのCGI)
を実行する方法を探しています。
下記のようにindex.htmとtest.cgiファイルを用意して、index.htm内の
javascriptから外部cgiを実行させ、cgiの結果(test.cgiでは単に
『test』と表示するのみ)を表示したいと考えています。
利用増ですが、cgiやssiが使用できないサーバにindex.htmを置いて、
cgiが使用できるサーバ上のcgi結果を取得したいものです。
通常のcgiのように、1ページでcgi結果を表示するものではなく、
HTMLファイルの一部にcgi処理結果を表示させたいものです。
そもそも、SSIを使用しなければ下記のようなHTML内にcgiなどの
実行結果を表示する事は出来ないのでしょうか。
よろしくお願い致します。
※下例のプログラムではcgi結果は表示されませんでした・・・。
---<index.htm>----------------------------------------
<HTML>
<BODY>
<SCRIPT language="Javascript" src="http://xxx.xxx.xxx.xxx/test.cgi"></SCRIPT>
</BODY>
</HTML>
---<test.cgi>----------------------------------------
#!/usr/bin/perl
print "test"
No.2ベストアンサー
- 回答日時:
「Google AdSense」のjavascriptでは#1さんの回答にもありますがiframeを使用するような仕掛けになっているようです。
・javascriptでiframeを展開。
・iframeのsrcでcgiを指定。
>外部cgiでjavascriptを生成する仕組みを作り、その生成されたjavascriptを参照するという間接的な仕組みを設ければ可能になる
そういう仕組みも可能です。
また、直接的に<script type="text/javascript" src="xxxx.cgi"></script>
こういう書き方も可能です。
※xxxx.cgiでは処理結果をjavascriptのコードとして
print "Content-Type: application/x-javascript\n\n";
print "document.write('xxxx');";
みたいにして吐き出す必要があります。
コメントありがとうございます。
なるほど、外部実行したcgi側の出力は
javascriptの形態にしなければならないのですね。
よく理解できました。
ありがとうございます。
No.3
- 回答日時:
# 1です
> これを直接cgiにすることは不可能で、javascriptなら可能ということなのでしょうか。
諸々の操作がiframeの中で完結するのでしたら、javascriptを経由する必要はありません。即ち、
<iframe src="http://hogehoge.com/cgi?a=zzzz&b=cccc=..."></ifr …
としておけば良い訳です。
# iframeを使えば静的ページにどんどん動的ページを貼付ける事が出来ます(見た目的に)。frameで呼び出しているだけ、と言えば元も子もありませんが。。。
度々のコメントありがとうございます。
iframeで完結することが出来ると思いますので、
こちらも良い実現方法ですね。
貴重なコメントありがとうございました。
No.1
- 回答日時:
いわゆるAJAX的(リッチコンテンツ、)な表示法を考えてらっしゃるようですが、セキュリティの関係でJavaScriptの仕様上、外部サーバへの接続(XMLHTTPRequest)は出来ない事になっています。
ですが、全く似たような事が出来ない訳ではなく、疑似表示法としてフレームやiframeを使えば表示可能かと思います。
それ以外の方法としては、Flashを使えば外部サーバとのやり取りも可能です(外部サーバはドメイン指定)。Flashはアニメや音声だけでなく、このような使い方も可能です。
参考まで。
早速のコメントありがとうございました。
私がやりたいことをもう少し具体的にお話したいと思います。
「Google AdSense」というアフィリエイトがあります。
それは、自分のHTMLページに、指定されたjavascriptを貼り付けるだけで
貼り付けた部分に、Google AdSenseの処理結果が表示されるものです。
私も同様な構造の仕組を作りたいと思いました。
下記に、自分のHTMLページに貼り付けるGoogle AdSenseから
指定されたサンプルスクリプトを引用いたします。
<script type="text/javascript"><!--
google_ad_client = "XXX";
google_ad_width = XXX;
google_ad_height = XXX;
google_ad_format = "XXX";
google_ad_type = "text";
google_ad_channel ="";
//--></script>
<SCRIPT type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show …
</SCRIPT>
上記スクリプトを自分のHTMLへ貼り付けることで、外部で処理された結果が
自分のHTML内に表示されるものなのですが、これは簡単に出来ないものなのでしょうか。
上記スクリプトでは、外部のjavascript(show_ads.js)を指定しているようなのですが、
これを直接cgiにすることは不可能で、javascriptなら可能ということなのでしょうか。
そうであれば、外部cgiでjavascriptを生成する仕組みを作り、その生成されたjavascriptを参照するという
間接的な仕組みを設ければ可能になるのでしょうか。
質問ばかりで申し訳ございませんが、よろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
10代と話して驚いたこと
先日10代の知り合いと話した際、フロッピーディスクの実物を見たことがない、と言われて驚きました。今後もこういうことが増えてくるのかと思うと不思議な気持ちです。
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
【お題】マッチョ習字
【大喜利】 「精神を鍛えるため」にと、ジムから書初めの宿題を出されたマッチョたちが半紙に書いてきたこと
-
集合写真、どこに映る?
あなたが集合写真を撮られるとき、画角のどのあたりにいることが多いですか? 私は振り返ってみると右の端にいることが多い気がします。
-
【選手権お題その2】この漫画の2コマ目を考えてください
サッカーのワンシーンを切り取った1コマ目。果たして2コマ目にはどんな展開になるのか教えてください。
-
JavaScriptでcgiの戻り値を受け取るには?
JavaScript
-
(Perl)ReadParseによるハッシュへの格納について
CGI
-
CGIの中で出力するテキスト内容をhtml側で表示する方法。
CGI
-
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・「みんな教えて! 選手権!!」開催のお知らせ
- ・漫画をレンタルでお得に読める!
- ・「黒歴史」教えて下さい
- ・2024年においていきたいもの
- ・我が家のお雑煮スタイル、教えて下さい
- ・店員も客も斜め上を行くデパートの福袋
- ・食べられるかと思ったけど…ダメでした
- ・【大喜利】【投稿~12/28】こんなおせち料理は嫌だ
- ・前回の年越しの瞬間、何してた?
- ・【お題】マッチョ習字
- ・モテ期を経験した方いらっしゃいますか?
- ・一番最初にネットにつないだのはいつ?
- ・好きな人を振り向かせるためにしたこと
- ・【選手権お題その2】この漫画の2コマ目を考えてください
- ・2024年に成し遂げたこと
- ・3分あったら何をしますか?
- ・何歳が一番楽しかった?
- ・治せない「クセ」を教えてください
- ・【大喜利】【投稿~12/17】 ありそうだけど絶対に無いことわざ
- ・【選手権お題その1】これってもしかして自分だけかもしれないな…と思うあるあるを教えてください
- ・集合写真、どこに映る?
- ・自分の通っていた小学校のあるある
- ・フォントについて教えてください!
- ・これが怖いの自分だけ?というものありますか?
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・10代と話して驚いたこと
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javascriptからサーバサイドの...
-
onChange="javascript:関数名"...
-
DocumentCompletedが複数回発生...
-
HTML上(javascript)からCGIを...
-
JavaScriptで ブラウザの閉じる...
-
デザイン時のVisible=Falseは実...
-
以下のコードを実行しても、オ...
-
既存のwebサイトで、ローカルの...
-
PowerPointで時計表示
-
JSPの処理の途中で、JavaScript...
-
javascriptで「オブジェクトを...
-
VB.NET2003 テキストボックスに...
-
重複した回答をさせないように...
-
リクエスト結果が一瞬しか表示...
-
1つのVBAコードをすべてのコア...
-
ローカルのレジストリを読みたい
-
VC#でテキストボックスに変数の...
-
「終了していない文字列型の定...
-
Webページ中の javascript をVB...
-
JavaScriptでショートカットキ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
javascriptからサーバサイドの...
-
VBScript から JavaScript を呼...
-
javascript で外部サイトにデー...
-
HTML上(javascript)からCGIを...
-
onChange="javascript:関数名"...
-
指定フォルダに存在するフォルダ名
-
DocumentCompletedが複数回発生...
-
JSPの処理の途中で、JavaScript...
-
if(1){...}とはどういうことで...
-
以下のコードを実行しても、オ...
-
正整数の半角数字かどうか判定する
-
JavaScriptで ブラウザの閉じる...
-
デザイン時のVisible=Falseは実...
-
「終了していない文字列型の定...
-
VB.NET2003 テキストボックスに...
-
PowerPointで時計表示
-
VBAによる第3、4水準文字の判定...
-
フォルダを自動で開く
-
1つのVBAコードをすべてのコア...
-
htmlのfileタグに自動で値を入...
おすすめ情報