正如我对您上一个问题的回答中所指出的那样,这些方法应该被调用_isAvailable
并且_isEnabled
在它们前面带有下划线,这就是我对您的方法没有被解雇的原因的猜测。
因此,请尝试在您的 JavaScript 中使用以下代码:
Extensions.DynamicControls.prototype._isAvailable =
function DynamicControls$_isAvailable(selection, pipeline)
{
alert('Inside DynamicControls isAvailable');
if (pipeline) {
pipeline.stop = false;
}
return true;
}
Extensions.DynamicControls.prototype._isEnabled =
function DynamicControls$_isEnabled(selection, pipeline)
{
alert('Inside DynamicControls isEnabled');
if (pipeline) {
pipeline.stop = false;
}
return true;
}
顺便说一下,看看你的命名空间,Extensions.DynamicControls
我想知道你是否做出了正确的引用,Javascript 不适合你的 ItemsGroup,它应该用于特定的按钮,每个命令(或按钮,如果你愿意的话)都有自己的位JavaScript 启用它并有一个_execute
方法。有关更多详细信息,请参阅我对您其他问题的回答。
CSS 仅用于按钮的布局,这实际上不会启用或禁用它们。尽管如果您将禁用图像分配给启用状态,那么外观可能具有欺骗性。
按钮的 CSS 看起来像:
/* large ribbon button image */
.tridion .ribbontoolbar .button.MyBtn .image,
.tridion .ribbontoolbar .button.MyBtn.ribbonitem .image
{
background-image: url({ThemePath}Images/my-btn-img.32x32.png);
}
.tridion .ribbontoolbar .button.MyBtn.ribbonitem.disabled .image
{
background-image: url({ThemePath}Images/my-btn-img.32x32.gray.png);
}
/* small ribbon button image */
.tridion .contextmenu .item.MyBtn .image,
.tridion .ribbontoolbar.minimized .button.MyBtn .image,
.tridion .ribbontoolbar.minimized .button.MyBtn.ribbonitem .image
{
background-image: url({ThemePath}Images/my-btn-img.16x16.png);
}
.tridion .ribbontoolbar.minimized .button.MyBtn.ribbonitem.disabled .image
{
background-image: url({ThemePath}Images/my-btn-img.16x16.gray.png);
}