我已经构建了一个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);
}
答案 0 :(得分:7)
这应该有效:
function itemsForPublish() {
alert(window.dialogArguments.items);
}
在'Publishing.js'(和'Publish.js')中,您可以看到要发布的项目被发送到Popups的dialogArguments。