4

独自の JavaScript を SDL Tridion 2011 のパブリッシュ ダイアログに「挿入」するための GUI 拡張機能を作成しました (この記事とコメントで説明されています: http://albertromkes.wordpress.com/2012/01/30/tridion-gui- extensions-how-to-load-a-javascript-without-showing-a-gui-element/ )

SDL Tridion のパブリッシュ ダイアログ (publish.js) で、パブリッシュ ダイアログが (URL ではなく) いくつかのパラメーターを受け取り、これらが渡されることがわかります。たとえば、次のようになります。

var p = this.properties;
if (p.params && p.params.items && p.params.items.length > 0)

したがって、私の JavaScript では、properties.params.items を取得したいのですが、取得できないようです。

パブリッシュ ビューがロードされた後、私の JavaScript コードが挿入されます。

<cfg:extension target="Tridion.Web.UI.Editors.CME.Views.Popups.Publish">
  <cfg:insertafter>Extensions.Resources</cfg:insertafter>
</cfg:extension>

そして、私の JavaScript (および Firebug コンソール) で、 を使用して値を取得しようとしました$display.getView().propertiesが、これはオブジェクトを返しnullます。

windowFirebug を使用して やその他のさまざまなオブジェクトを見回してきましたが$display、オブジェクトに到達する方法がわかりませんparams

私の JavaScript は次のようになります。

$evt.addEventHandler($display, "start", itemsForPublish);

function itemsForPublish() {

    var p = $display.getView().properties;
    var items = p.params.items || [];

    alert(items);
}
4

1 に答える 1

7

これは機能するはずです:

function itemsForPublish() {
    alert(window.dialogArguments.items);
}

「Publishing.js」(および「Publish.js」)では、公開するアイテムがポップアップのdialogArgumentsに送信されていることがわかります。

于 2012-03-21T20:23:40.390 に答える