Jmol JavaScript Object/ja

From Jmol
Revision as of 01:14, 25 August 2022 by Cudo29 (talk | contribs) (現在あるJSmolの制限事項: Translated from the section of "Current limitations of JSmol" of Jmol JavaScript Object 2021-09-30 (Thu) 18:48‎ (UTC))
Jump to navigation Jump to search

Geographylogo.png

Reference: English – Other: 日本語 ·


JSmol - Jmol JavaScript オブジェクト

JSmol logo13.png

JSmolの中核となるのはJmol JavaScriptオブジェクト(window.Jmol)で、これにはJavaScriptの関数やユーティリティが含まれています。最初のJmolオブジェクトは2012年の初めにボブ・ハンソン(Bob Hanson)とポール・パイロット(Paul Pillot)によって開発されました。そしてこの年の後半にはJSmolに組み込まれました。ライブラリ File icon.gif 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モデルを生成することができます(より詳しい説明参照)

JSmoljQuery1.9や1.10と完全に互換性があります。(jQuery 2.0はサポートしていません。また原則として file:// を使ってローカルで実行するMSIEはサポートしないと報告されています。したがって、ローカル環境のMSIEでページを実行する必要がない場合は問題ありません。その場合、jQueryを少し修正する必要があります)。ライブラリはW3CとXHTMLで検証されています。

JSmolの主な機能

非JavaオプションHTML5専用のオプションとJavaやHTML5/WebGLでは任意のオプション。これには、ページ上の画像やリンクをクリックするとapplet/canvas上の3Dモデリングを開始する初期「遅延アプレット」モード、初期画像が表示されている間に背後で読み込みを行う「画像+読み込み」モードなどさまざまなオプションが含まれます。
ライブラリファイル 最低限Folder icon.gifj2sフォルダの中身とFile icon.gifJSmol.min.jsファイルは必要。多言語化インタフェースを使うにはFolder icon.gifidiomaフォルダも必要。またFolder icon.gifjavaフォルダの中身も場合によって必要。
JavaScriptオブジェクト JavaScriptオブジェクト Jmol を一つつくる。これにはJmol._AppletJmol._ImageJmol.controlsなどの関数や内部オブジェクトのセットが含まれています。
JavaScriptプロトタイプ Jmol.getApplet() または Jmol.getAppletHtml() を使って作成したオブジェクトは、Jmol._Applet のサブクラスとなるJavaScriptオブジェクトです。Jmol.getApplet() を使うと、applet/canvasそのものではなく、JavaScriptオブジェクトへの参照が得られます。appletやcanvasは div 要素群で囲み、より多様なオプションを使えるようにしています。
AJAX JSmolは、jQueryで提供されるAJAXを使ってクロスプラットフォームリソースへ簡単にアクセスする方法を実装しています。
RESTサービス JSmolはRCSBのキーワード検索結果にアクセスすることができます。例:caffeine(カフェイン)を参照する構造一覧。
スクリプト JSmolは、Jmolが提供していたのと同じスクリプト機能を提供します。JSmolは、applet/canvasがページを作成する前、または作成中にスクリプトコマンドをすぐに受け入れ、受け入れる準備ができるまでその内容をキャッシュします。

JSmol

JSmol logo13.png

JSmolはJmolアップレットのHTML5 canvas版の名称です。JSmolはPC、Mac、Linuxシステム、タブレットや携帯電話(iOSおよびAndroid)でJavaを必要とすることなく開くことができます。ハードウェアに基づくグラフィック高速化は使っていないので、JSmolはHTML5の標準機能が使えればどんなブラウザの上でも動作します。JSmolは完全にクライアント環境下で動作しており、ほとんどの操作においてサーバ側のしくみを必要としません。(一部のブラウザでバイナリファイルを読み込む場合、あるいはすべてのブラウザで画像やJmol状態を保存する場合には、サーバ側のPHPスクリプトを必要とします。通常はFile icon.gifphp/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圧縮されたファイル、File icon.gifpngjファイル): 読み込むことはでいますが、ファイル種を識別できるようなファイル名にしておく必要があります(下記参照)。
  • File icon.gifjpgFile icon.gifpngFile icon.gifpngj(png+zip)データへの書き込みは特に制限なく行うことができますが、ユーザがダウンロードできるようにするにはサーバ側での設定が必要です(あるいは、 画像をエクスポートするに記載している別の方法を参照してください)。
  • Jmol prompt コマンドは、HTML5バージョンの場合、単純なJavaScript様の応答以外は使えません。
  • JSmolにおけるWebGLの実装はまだ完全ではなく、機能は限られてます。

バイナリファイルの読み込み

JmolページからJSmolページへの変換

「アダプタ」ライブラリJmol2.jsを用いた変換

JSmolを使わないJmolアップグレード

インストール

ファイルのダウンロード

特定のブラウザに対する配慮

ローカルファイルへのアクセス

WindowsのMSIE(Internet Explorer)

WindowsのChrome

初期設定

ブラウザに関する問題

ライブラリの読み込み

軽量版JSmol

最適構成

パラメータの設定

URLによるパラメータの設定

Jmol JavaScriptオブジェクトの各機能

Contributors

Cudo29, AngelHerraez