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

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"

A 回答 (3件)

「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');";
みたいにして吐き出す必要があります。
    • good
    • 0
この回答へのお礼

コメントありがとうございます。

なるほど、外部実行したcgi側の出力は
javascriptの形態にしなければならないのですね。
よく理解できました。
ありがとうございます。

お礼日時:2006/11/08 15:32

# 1です


> これを直接cgiにすることは不可能で、javascriptなら可能ということなのでしょうか。
諸々の操作がiframeの中で完結するのでしたら、javascriptを経由する必要はありません。即ち、
<iframe src="http://hogehoge.com/cgi?a=zzzz&b=cccc=..."></ifr …
としておけば良い訳です。

# iframeを使えば静的ページにどんどん動的ページを貼付ける事が出来ます(見た目的に)。frameで呼び出しているだけ、と言えば元も子もありませんが。。。
    • good
    • 0
この回答へのお礼

度々のコメントありがとうございます。

iframeで完結することが出来ると思いますので、
こちらも良い実現方法ですね。
貴重なコメントありがとうございました。

お礼日時:2006/11/08 15:35

いわゆるAJAX的(リッチコンテンツ、)な表示法を考えてらっしゃるようですが、セキュリティの関係でJavaScriptの仕様上、外部サーバへの接続(XMLHTTPRequest)は出来ない事になっています。


ですが、全く似たような事が出来ない訳ではなく、疑似表示法としてフレームやiframeを使えば表示可能かと思います。
それ以外の方法としては、Flashを使えば外部サーバとのやり取りも可能です(外部サーバはドメイン指定)。Flashはアニメや音声だけでなく、このような使い方も可能です。

参考まで。
    • good
    • 0
この回答へのお礼

早速のコメントありがとうございました。

私がやりたいことをもう少し具体的にお話したいと思います。
「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を参照するという
間接的な仕組みを設ければ可能になるのでしょうか。

質問ばかりで申し訳ございませんが、よろしくお願い致します。

お礼日時:2006/11/08 12:35

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