Tridion 2011 Content Manager Explorerの拡張機能があり、特定のビューに対してのみ特定のJavaScriptを実行したいと考えています。
私は次のJavaScriptフラグメントでこれを行います:
var onDisplayStarted = function () {
$evt.removeEventHandler($display, "start", onDisplayStarted);
if ($display.getView().getId() == "PublishPopup") {
...
}
};
$evt.addEventHandler($display, "start", onDisplayStarted);
このコードは過去にうまく機能しており、PublishPopup
開いたときに確実にトリガーされ、コードがその特定のビューでのみ実行されるようにします。
しかし、残念ながら、JavaScriptコンソールでDashboardView
:の読み込み中に次のエラーメッセージが表示されることがあります。
Uncaught TypeError:オブジェクト#にはメソッド'getId'がありません
イベントハンドラーのエラーはTridionのUIフレームワークによって正しく処理されるため、エラーによって問題が発生することはほとんどありません。しかし、JavaScriptコンソールにエラーが表示されないようにしたいと思います。
getId
メソッドが存在するかどうかを検出する方法を理解しています。
if ($display.getView().getId && $display.getView().getId() == "PublishPopup") {
しかし、それはコードが実行されないことを意味します。現在は正常に機能しているように見えますが、PublishPopup
このタイプの「ビューが初期化されたらコードを実行する必要がある」シーケンスを処理する適切な方法を知りたいと思います。
誰かがこれを処理するためのより良い方法を知っていますか?