【问题标题】:Reading parameters in an SDL Tridion 2011 publish dialog extension在 SDL Tridion 2011 发布对话框扩展中读取参数
【发布时间】:2012-03-21 19:08:43
【问题描述】:

我已经构建了一个 GUI 扩展,用于将我自己的 JavaScript“注入”到 SDL Tridion 2011 发布对话框中(如本文和评论中所述: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 对象。

我一直在使用 Firebug 环顾window$display 和其他各种对象,但找不到到达params 对象的方法。

我的 JavaScript 如下所示:

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

function itemsForPublish() {

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

    alert(items);
}

【问题讨论】:

    标签: tridion


    【解决方案1】:

    这应该可行:

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

    在“Publishing.js”(和“Publish.js”)中,您可以看到要发布的项目被发送到弹出窗口的 dialogArguments。

    【讨论】:

    • 感谢阿尔伯特,这很有效。我试过这段代码,但我正在刷新发布对话框以检查更改。执行此操作时,params 对象为空。因此,绝对值得注意的是每次都应关闭/打开发布对话框以进行检查。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多