Jmol JavaScript Object/ja
JSmol - Jmol JavaScript オブジェクト
JSmolの中核となるのはJmol JavaScriptオブジェクト(window.Jmol
)で、これにはJavaScriptの関数やユーティリティが含まれています。最初のJmolオブジェクトは2012年の初めにボブ・ハンソン(Bob Hanson)とポール・パイロット(Paul Pillot)によって開発されました。そしてこの年の後半にはJSmolに組み込まれました。ライブラリ JSmol.min.js はこのオブジェクトを提供するもので、以前はJmol Javaアプレットとともに排他的に用いられていた Jmol.js JavaScriptライブラリの後継となるものです。これを使えば、よりすっきりとした効率的な方法でウェブページ上のJmolとやりとりをすることができます。また、分子モデルの視覚化を抽象化することにより、JavaアプレットをJavaとは異なるHTML5 canvas要素(これはJmolでさえない場合もある)へとシームレスかつ選択的に置き換えることができます。
ウェブページ開発者はJSmolを使うと、もはやJavaアプレットをサポートしなくなったほとんどのウェブブラウザを対象とすることができます。これはJmolアプレットサロゲート(Jmol applet surrogate)を使っていて、互換性のある環境下でのJmol Javaアプレットをまだサポートしています。
JSmolはまた、画面の背後でRCSB PDBデータベース、米国国立がん研究センターのCACTVSサーバ、PubChemなどの公開データベースにアクセスする機能も備えています。
さらに、JSmolは以下のオブジェクトと簡単にやりとりすることができます。
- JSpecView HTML5 オブジェクト: これにより3DモデルをIR、NMR、UV/VIS、GC/MSスペクトルに関連付けることができます(より詳しい説明参照)
- JSME HTML5 オブジェクト: 簡単な化合物2d描画を使って3Dモデルを生成することができます(より詳しい説明参照)
JSmolはjQuery1.9や1.10と完全に互換性があります。(jQuery 2.0はサポートしていません。また原則として file:// を使ってローカルで実行するMSIEはサポートしないと報告されています。したがって、ローカル環境のMSIEでページを実行する必要がない場合は問題ありません。その場合、jQueryを少し修正する必要があります)。ライブラリはW3CとXHTMLで検証されています。
JSmolの主な機能
JSmol
JSmolはJmolアップレットのHTML5 canvas版の名称です。JSmolはPC、Mac、Linuxシステム、タブレットや携帯電話(iOSおよびAndroid)でJavaを必要とすることなく開くことができます。ハードウェアに基づくグラフィック高速化は使っていないので、JSmolはHTML5の標準機能が使えればどんなブラウザの上でも動作します。JSmolは完全にクライアント環境下で動作しており、ほとんどの操作においてサーバ側のしくみを必要としません。(一部のブラウザでバイナリファイルを読み込む場合、あるいはすべてのブラウザで画像やJmol状態を保存する場合には、サーバ側のPHPスクリプトを必要とします。通常はphp/jsmol.phpで提供されています。詳しくは以下を参照してください。)
JSmolはBob Hanson、Zhou Renjian、Takanori Nakane(中根 崇智)によって開発されました。
JSmolを使うとJmolと同じように分子モデルを描き、スクリプトによる一括操作を行い、対話的に操作することができます。なぜなら、ソースコードは両者で共有しているからです。JSmolはJmolとは別のプログラムという訳ではないということを留意しておいてください。これは単にJavaではなくJavaScriptへとJmolをコンパイルしただけのものです(Java2Scriptのソフトウェアのおかげです)。
現在のJSmolの制限事項
- 一部のブラウザでは、セキュリティポリシー上の理由からローカルファイル(ウェブブラウザ内ないファイル)を利用することはできません。
- Operaではローカルファイルにアクセスできません。
- MSIEではバイナリファイルでない場合に限りローカルファイルにアクセスできます。
- Chromeでは特別なコマンドラインフラグを指定して起動した場合に限りローカルファイルにアクセスできます(
chrome.exe --allow-file-access-from-files
)。 - Firefoxでは
about:config
に「security.fileuri.strict_origin_policy = false
」の設定を行うことによりローカルファイルにアクセスできるようになります。
- バイナリファイルの読み込み(例:Spartanファイル、gzip圧縮されたファイル、pngjファイル): 読み込むことはでいますが、ファイル種を識別できるようなファイル名にしておく必要があります(下記参照)。
- jpg、png、pngj(png+zip)データへの書き込みは特に制限なく行うことができますが、ユーザがダウンロードできるようにするにはサーバ側での設定が必要です(あるいは、 画像をエクスポートするに記載している別の方法を参照してください)。
- Jmol
prompt
コマンドは、HTML5バージョンの場合、単純なJavaScript様の応答以外は使えません。 - JSmolにおけるWebGLの実装はまだ完全ではなく、機能は限られてます。