我们可以像这样在我们的JavaScript中使用标准的'InsertCpDialog $ initialize()',这样一旦它初始化,我就可以调用其他函数。我用下面的代码,但它不工作。 :(如何覆盖标准方法的初始化
Type.registerNamespace("Extensions");
Extensions.InsertCpDialog.prototype.initialize = function InsertCpDialog$initialize()
{
alert('hi inside insert');
var p = this.properties;
if(window.document.nameProp == "Name" || window.document.title == "Name") {
var browserName=navigator.appName; // Get the Browser Name
if(browserName=="Microsoft Internet Explorer") // For IE
{
alert('hi inside IE');
//window.onload=init(); // Call init function in IE
}
else
{
if (document.addEventListener) // For Firefox
{
alert('hi inside firefox');
//document.addEventListener("DOMContentLoaded", init(), false); // Call init function in Firefox
}
}
}
}
原件(标准),一个是这样的:
Type.registerNamespace ("Tridion.Cme.Views");
Tridion.Cme.Views.InsertCpDialog = function InsertCpDialog()
{
Type.enableInterface(this, "Tridion.Cme.Views.InsertCpDialog");
this.addInterface("Tridion.Cme.Views.DashboardBase");
};
Tridion.Cme.Views.InsertCpDialog.prototype.initialize = function InsertCpDialog$initialize()
{
}
编辑
喜坦率谢谢,但我已经用我的代码同样的事情,以获取列表在CP标签下的页面上列出的组件和模板
function getbtn() {
//alert('inside getbtn');
var sbtn = document.getElementById ("buttonComponentInsert");
$evt.addEventHandler(sbtn , "click", getListofCPBtnClick);
}
function getListofCPBtnClick(e) {
//code will go here
}
我的问题是: 我需要从得到选定的组件和模板ID插入CP窗口。早先我能够通过更改CME扩展标准代码来获得,但我不想这样做,所以首先我我试图从我的JavaScript代码初始化“插入CP窗口”。我可以创建该窗口的事件处理程序,但我的问题是如何初始化,以便我可以调用任何函数,一旦它初始化。请让我知道,如果我非常清楚。
在Frank提到的文章中,Albert提供了回调以在视图加载完成后运行所需的任何代码,并在博客评论中解释了如何扩展特定视图以提高性能以及样例配置。这足以初始化你的代码并创建事件监听器吗? – 2012-08-13 07:41:45