4

Tridion 2011 SP1 のリボン ツールバーにボタンを追加しました。ボタンをクリックすると、aspx ページが開きます。その aspx ページ内で、現在カーソルがある現在のフィールド名にアクセスする必要があります。使用するオブジェクトを教えてください。私が使用したスキーマ名には$display.getView().getItem().getSchemaId(). 同様に、現在のフィールド名を取得する方法はありますか?

4

1 に答える 1

6

私が得た最も近いものは、このコードを使用することです(コンポーネント編集ウィンドウで):

$display.getView().getSourceEditorName()

メソッド名が何か他のことを示唆していても、これは現在のフィールドの名前を返します。

ポップアップから同じ値を取得したい場合は、次のopenerように呼び出します。

opener.$display.getView().getSourceEditorName()

より良い解決策

ポップアップ内からフィールド名を検索する代わりに、コマンドが呼び出されたときに引数として実際にポップアップに渡す必要があります。コマンドtargetのメソッドに渡されるパラメーターから取得できます。_execute

GUI.Extension.prototype._execute = function GUI$Extension$_execute(target) {
    target.editor.setFocus();
    var fieldName = target.item.getSourceEditorName();
    var popup = $popup.create("/WebUI/Editors/GUI.Extensions/Extension.aspx",
                "width=400px,height=150px,resizable=0",
                { fieldName: fieldName });
}

そして、次を使用してポップアップの JavaScript でそれを読み取ります。

var fieldName = window.dialogArguments.fieldName;
于 2012-04-18T13:33:18.937 に答える