アカウント名:
パスワード:
……JavaScriptエンジン、外付けにならねーかなぁ……って、ムリか。あれだけべったりくっついてちゃあなぁ……。
XULをmozillaの上で動かす、ってんじゃなくて、単にスクリプト言語として(perl/ruby/pythonのように)使って必要に応じてコンポーネントを呼ぶ、って使い方もアリだと思うんだが、そーいうの聞かないね。
MozillaではDOMにオブジェクトをマップするために、XPCOMを使って実装しています。MozillaのランタイムはXPCOMのランタイムシステムだと言っても過言ではない
Python で xpcom を呼ぶ Mozilla ソースツリー内 Python XPCOM の readme ruby で xpcom を呼ぶ perl で xpcom を呼ぶ
む、 #212846 [srad.jp] 読んでリンク先よく見たら、コンポーネントを制御するスクリプトというより、これらのスクリプトで XPCOM オブジェクトを作れ
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
あと、僕は馬鹿なことをするのは嫌いですよ (わざとやるとき以外は)。-- Larry Wall
XUL (スコア:1, 参考になる)
実際のところ、たとえば HTML + CSS + CGI でもそこそこの
UI は作れます。
HTML が XML になって、CGI が JavaScript になっただけですね。
しかしながら、JavaScript 経由で XPCom のコンポーネントが
叩けたりするし、DOM
Re:XUL (スコア:1)
まだまだ使い尽くされてはいない。
……ただし、早いところ規格が統一されれば、の話(^^; 使わないのにはそれなりの理由があるのは知ってるし、オイラも普段はサーバサイド命の人間ぢゃき(苦笑
……JavaScriptエンジン、外付けにならねーかなぁ……って、ムリか。あれだけべったりくっついてちゃあなぁ……。
_ to boldly go where no man has gone before!
外付けJavaScriptエンジン(Re:XUL (スコア:2, 参考になる)
んにゃ、mozilla.org の SpiderMonkey [mozilla.org] とか Rhino [mozilla.org] とか
頑張れば使えるっす。
Rhino については WEB PRESS Vol.9 [gihyo.co.jp] の記事が参考になるかと。
あぁそうだ。Rhino は他の製品にも利用されてます。
- Tivoli Distributed Monitoring [tivoli.com]
- How are people using Rhino? [mozilla.org]
Re:外付けJavaScriptエンジン(Re:XUL (スコア:0)
mozillaソースの(トップでなく)jsディレクトリからmakeするだけ。
コマンドラインからスクリプトを読んで、JavaScriptエンジンjs3250.dll(windows版の場合)を呼ぶexeができる。
JavaScriptは言語仕様としては
・一通りの制御構造
・文字列・正規表現
・オブジェクト
があって、一般的なスクリプト言語としては必要十分だと思うし、
mozillaの実装だとxmlとかDOMと
Re:外付けJavaScriptエンジン(Re:XUL (スコア:0)
MozillaではDOMにオブジェクトをマップするために、XPCOMを使って実装しています。MozillaのランタイムはXPCOMのランタイムシステムだと言っても過言ではない
Re:外付けJavaScriptエンジン(Re:XUL (スコア:0)
.zip や .tar.gz のパッケージなら xpcshell(.exe) ってのが入ってて、xpcom 呼んだりできる。簡単な使い方 [mozdev.org]
> XULをmozillaの上で動かす、ってんじゃなくて、単にスクリプト言語として(perl/ruby/pythonのように)使って必要に応じてコンポーネントを呼ぶ、って使い方もアリだと思うんだが、そーいうの聞かないね。
あるよーん。
Python で xpcom を呼ぶ [activestate.com]
Mozilla ソースツリー内 Python XPCOM の readme [mozilla.org]
ruby で xpcom を呼ぶ [mozdev.org]
perl で xpcom を呼ぶ [mozdev.org]
今年以降あんまり進展はしてないようだけど。
別の話になる
Re:外付けJavaScriptエンジン(Re:XUL (スコア:0)
む、 #212846 [srad.jp] 読んでリンク先よく見たら、コンポーネントを制御するスクリプトというより、これらのスクリプトで XPCOM オブジェクトを作れ
Re:外付けJavaScriptエンジン(Re:XUL (スコア:0)
「JavaScriptを」単にスクリプト言語として(perl/ruby/pythonのように)使って
と言いたかったんだが。
JSエンジン Rhino に関する日本語情報 (スコア:0)
はじめ、google で検索すると結構出てきますね。
Batik にも Rhinoが入っているんですね。
Re:外付けJavaScriptエンジン(Re:XUL (スコア:0)
> Rhino については WEB PRESS Vol.9 [gihyo.co.jp] の記事が参考になるかと。
SpiderMonkey については wxJS - the wxWindows Library to JavaScript using the SpiderMonkey Engine of Mozilla [sourceforge.net] の
Re:XUL (スコア:1)
個人的にはJavaScript 2.0 [mozilla.org]が欲しいです。
グローバル変数と関数で書くのはもうやめたい(T_T)
Re:XUL (スコア:1)
でも今は、同じCSSが同じ表示にはならない。
同じスクリプトで同じ(期待した)動作をしてくれない
同じ名前のオブジェクトが同じプロパティとメソッドをを持っていない 。
もっと厄介なことに同じ名前のプロパティ/メソッドで違う動作をする(^^;
誰が悪いと犯人探しをするのは簡単だけど [cruel.org]、今そこにある現実も直視しなければならない。とっても不本意なことではあるけど、ね(T_T)
_ to boldly go where no man has gone before!
Global変数と関数だけですか? (スコア:0)
alert(factorial4( )); // == 24
alert(double4( )); // == 8
function factorial4( ) {
return f(4);
function f(x) { return x == 1? 1: x * f(x-1); }
}
function double4( ) {
return f(4);
function f(
Re:Global変数と関数だけですか? (スコア:1)
x="global";
function f()
{
document.writeln(x);
var x="local";
document.writeln(x);
}
document.writeln(x);
f();
JavaScript のネックは、セミコロンの省略と、静的なチェックが弱いことだと思います。
# セミコロンの省略は、Mozilla の JavaScript 2.0 で on/off 可能なようですが、既存のソースと互換性が無くなるので…。
JavaScriptはプロトタイプベースオブジェクト指向です (スコア:0)
静的チェックが弱いのは動的言語一般の話でJavaScript固有の話はないと思います。JavaScript固有の弱点はimport相当の機能と、やや処理系問題ですが、例外のスタックトレースがとれないことではないかと
Re:Global変数と関数だけですか? (スコア:0)
プレフィックスを'_'で連結してぐらいはやるが、外部から参照しないのにそれでは名前が長すぎると。だからローカル関数にすればいい。さらに外部から参照したければGlobalスコープ変数のオブジェクトのプロパティにセットすればいい。
Re:XUL (スコア:0)