Adobeのlib:webaccesslib互換を目指すwebaccesslib.jsxを作ってみた
スポンサードリンク
ExtendedScript ToolKit2、Adobe Bridge 2、Adobe InDesign CS3で動く、Adobeのlib:webaccesslib互換を目指すwebaccesslib.jsxを作ってみました。
つまり、JavaScriptの中でURLを指定してWebのデータを引っ張ってこれます。
http://svn.coderepos.org/share/platform/indesign/javascript/webaccesslib/trunk/webaccesslib.jsx
[PDF]JavaScript Tool Guide [www.adobe.com] にある[PDF]HttpConnectionクラスの代わりに、HttpConnクラスを使います。
使うときは、
同じディレクトリにwebaccesslib.jsxがある場合は、
// ライブラリを読み込む #include "webaccesslib.jsx" var http = new HttpConn("http://www.yahoo.co.jp/"); http.requestheaders = [ "User-Agent", app.name + "/" + app.version + " " + "(" + $.os +";)", ]; http.requestencoding = "utf-8"; http.execute(); alert(http.response);
などするといいみたい。
see: InDesign - JavaScript小技(2) - 名もないテクノ手 [d.hatena.ne.jp]
もし、HTMLみたいにネット上においてあるライブラリを使いたい場合は、
// ライブラリをWebから読み込む var _c ={ s: new Socket, h: "svn.coderepos.org", u: "/share/platform/indesign/javascript/webaccesslib/trunk/webaccesslib.jsx" }; _c.s.open(_c.h + ":80", "UTF-8"); _c.s.write("GET " + _c.u + " HTTP/1.0\nHost: " + _c.h + "\n\n"); _c.t = _c.s.read(99999); eval(_c.t.substring(_c.t.indexOf("\n\n") + 2) ); _c.s.close; // ライブラリ読み込み終わり var http = new HttpConn("http://www.yahoo.co.jp/"); http.requestheaders = [ "User-Agent", app.name + "/" + app.version + " " + "(" + $.os +";)", ]; http.requestencoding = "utf-8"; http.execute(); alert(http.response);
としてみるのはどうでしょう。ダメか。
なお、webaccesslib.jsxはCodeReposにおいてあるので、改良を手伝っていただければ大助かりでございます。
スポンサードリンク
トラックバック(1)
トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/2653
CL氏がやってくれた。これは、かなりヤバい。 みんなでシコシコ、スクリプトを書く時代に引導を渡してしまったぐらい衝撃がある。 ものぐさな私としては、他の言語にみならいつつワークフレームみたいなものができればどれだけ幸せになれるのか試案してた最中でして、今、も... 続きを読む
スゲー!!!Gooodjob!!!!!です。
ちょっとやる気になってスクリプト書いたりするんですが、なにぶんものぐさなもので、
スクリプトを書く上でのワークフレーム的なものがなんとかできないか考えていました。
コントローラーで他のライブラリの読み込みの仕方になやんでいたのですが、これ一発で解決できます。
最低限の機能しかできていなく、現状GETで引っ張ってくることしかできませんが、これだけでもいろいろできるようになりますよね。
改善すべきところがいっぱいあるのですが、やっていることいっぱいあるのでw、CodeReposに上げることでお茶を濁しています。
フルスペックまで実装できればいいんですけれども……