我正在努力修改一些Javascript代码。我知道我想要改变什么,但它是在一个定期更新的产品的巨大JS文件中。它基本上是对产品的小型定制。我认为可以外部化我的更改并保留核心文件,而不是直接破解文件。
我想要更改的JS文件的结构如下:
(function()
{
Company.CoolWidget = function(inArg)
{
Company.CoolWidget.superclass.constructor.call(this, inArg);
};
YAHOO.lang.augmentObject(Company.CoolWidget.prototype,
{
options:
{
....
},
onReady: function COOL_onReady()
{
....
}
}, true);
})();
我想在标准onReady(COOL_onReady())函数中执行所有操作,但在其末尾添加一些内容。 我想添加一个新方法,例如:
onNewMethod: function EXT_COOL_newMethod()
我不知道该怎么做以及我是否能做到这一点,而且我不确定是否只是在其他JS文件之后加载新的JS文件必然会保证覆盖将会发生。
或许问题应该是:如何在更改YUI2 Javascript文件时进行微创。
答案 0 :(得分:0)
我遇到了类似的问题,但我想要完成的是修复错误。我想你可以认为这一点。
Y.Button.prototype._setTitle = function (p_sTitle) {
// http://yuilibrary.com/forum/viewtopic.php?p=885
/*jslint nomen: true*/
var sTitle = p_sTitle;
if (!sTitle) {
switch (this.get("type")) {
case "radio":
sTitle = this.RADIO_DEFAULT_TITLE;
break;
case "checkbox":
sTitle = this.CHECKBOX_DEFAULT_TITLE;
break;
case "menu":
sTitle = this.MENUBUTTON_DEFAULT_TITLE;
break;
case "split":
sTitle = this.SPLITBUTTON_DEFAULT_TITLE;
break;
case "submit":
sTitle = this.SUBMIT_TITLE;
break;
}
}
/*jslint nomen: false*/
this._button.title = sTitle;
/*jslint nomen: true*/
};
原型,我相信,就是你所追求的。上面的yuilibrary链接可能有所帮助。
祝你好运! :)