我在 Tridion 2011 SP1 的功能区工具栏中添加了一个按钮。当我单击按钮时,它将打开一个 aspx 页面。在该 aspx 页面中,我需要访问光标当前所在的当前字段名称。请提供我要使用的对象?对于我使用的模式名称$display.getView().getItem().getSchemaId()
。同样有没有办法获取当前字段名称?
问问题
239 次
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 回答