我们可以像这样在我们的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
}
我的问题是: 我需要从插入 CP 窗口中获取选定的组件和模板 ID。之前我能够通过更改 CME 扩展标准代码来获得它,但我不打算这样做,所以首先我试图初始化从我的 javascript 代码中“插入 CP 窗口”。我可以为该窗口创建事件处理程序,但我的问题是如何初始化它,以便在它初始化后我可以调用任何函数。如果我不清楚,请告诉我。