我正在为 Sitecore 制作第 3 方 Javascript 工具,该工具需要根据当前编辑页面的模板修改其行为。
到目前为止,我一直在使用这个脚本来获取模板的名称:
jQuery(".scEditorSectionPanelCell a[onclick*='shell:edittemplate']")[0].innerHTML.match(/\/?([^/]+?)$/i)[1];
一点解释:在编辑页面时,有一个名为“快速信息”的段落(如果翻译不正确,我们深表歉意 - 不适用于英文版 Sitecore)。本段内是编辑当前模板的直接链接 - 这是我使用 jQuery 获取的链接:
<td>
<a href="#" onclick="javascript:scForm.postRequest('','','','shell:edittemplate');return false">
/sitecore/templates/Imported/[NAME-OF-TEMPLATE]
</a> -
<input class="scEditorHeaderQuickInfoInputID" readonly="readonly" onclick="javascript:this.select();return false"
value="{[ID-OF-TEMPLATE]}">
</td>
从中我得到带有正则表达式的模板名称。如果我愿意,我还可以从兄弟<input>
元素中获取模板 ID。
问题是,并非所有用户都可以看到“快速信息”段落。
关于如何在“快速信息”不可见时获取模板名称或 ID 的任何建议?我无法访问底层的 ASP.NET 代码,因此解决方案需要严格使用 Javascript。