- PR -

外部JavaScriptファイルを作りたい

1
投稿者投稿内容
ビジネスモール開発者
常連さん
会議室デビュー日: 2005/03/17
投稿数: 25
投稿日時: 2005-03-17 11:30
初めて投稿します。

ASP.NETでサイトを構築しているのですが、
他のサイトでもJavaScriptタグだけで情報が表示できるようにしたいです。

そこで、本体サイトで動的にJavaScriptファイルをつくり、
他サイトでは外部JavaScriptファイルを参照するタグを書くというのが
できるのでは、と思い作ってみました。

・本体側
JsTest.aspx
<script runat=server>
Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
Response.ContentType = "application/JavaScript"
response.write("document.write('表示する情報')")
end sub
</script>
(「表示する情報」のところは本番ではプログラムで動的に作成します)


・外部サイト側
<html>
<body>
<script language="javascript" src="JsTest.aspx"></script>
</body>
<html>

一応これでいけそうなのですが、できれば拡張子を.jsにしたいです。
あたりまえですが、JsTest.jsと拡張子を変更しただけでは動きませんでした。

どんな方法が考えられるのでしょうか?

よろしくお願いします。

ぼのぼの
ぬし
会議室デビュー日: 2004/09/16
投稿数: 544
投稿日時: 2005-03-17 11:48
System.IO.StreamWriterを使えば良いのでは?
ビジネスモール開発者
常連さん
会議室デビュー日: 2005/03/17
投稿数: 25
投稿日時: 2005-03-17 12:05
引用:

ぼのぼのさんの書き込み (2005-03-17 11:48) より:
System.IO.StreamWriterを使えば良いのでは?



質問がへたですいません。

動的に表示部分を作るのはおっしゃるとおり、
System.IO.StreamWriterなどで作成することができました。
その部分は特に困るということはありませんでした。

困っているのは、拡張子を変えたいという点です。
拡張子を.jsにしたいのですが、どうしてよいのかわからないのです。
単純に拡張子をかえただけでは動かないので、
・中間のJavaScriptファイルを作ってそこからASPXファイルを呼び出す
・拡張子.jsもAPSXファイルと同じように動くようにサーバを設定する
などがありうるのかなとは思うのですが、
どうしたらよいのかわかりません。



かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-03-17 12:29
IISはただのWEBサーバで、ASPの処理等はIISが提供するISAPIフィルタで行ってます。
拡張子に対してどのISAPIフィルタを摘要するかの設定を管理ツールで行う事ができます。

管理ツール > サービス > IIS > WEBサイト名を右クリックでプロパティ >
ディレクトリタブ > 構成ボタン > アプリケーションのマッピングタブ

ここで、.aspxと同じ設定の.jsを作成すればOKです。
ただし、静的な.jsもASPとして解釈されるはずです。
ですので、スクリプトレット「<% %>」がソース内に存在するようなjsファイルなら
予めエスケープする必要があります.

例)var aaa = "<%";


ビジネスモール開発者
常連さん
会議室デビュー日: 2005/03/17
投稿数: 25
投稿日時: 2005-03-17 15:49
アプリケーションのマッピングとWeb.configに以下を追加したらできました。

<system.web>
 <httpHandlers>
  <add verb="*" path="*.js" type="System.Web.UI.PageHandlerFactory" />
 </httpHandlers>
</system>

ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)