我們可以像這樣在我們的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