我想向sitecore页面编辑器功能区添加一个按钮,并希望它作为链接工作。
例如,当我单击此按钮时,页面应重定向到HOMEURL / sample.aspx。
我写了一个类,它继承自Command。
public class addlink : Command
{
public override void Execute(CommandContext context)
{
Sitecore.Web.WebUtil.Redirect("/sample.aspx");
}
}
然后,对于核心数据库中的此webedit功能区元素,我将点击事件设置为webedit:addlink。浏览器上此链接的onclick事件是javascript:return scForm.invoke('webedit:addlink',event)。
因此,重定向不会发生。如何添加指向页面编辑器功能区的链接?我将对改善我的类的任何建议或其他方法表示欢迎。
谢谢
最佳答案
您需要在Sitecore
配置中注册命令。可以在MyCommands.config
中使用内容创建自己的App_Config/Include
文件:
<configuration>
<command name="webedit:addlink" type="My.Assembly.Namespace,My.Assembly"/>
</configuration>
或使用命令定义更新现有文件之一。
编辑您的评论:
您的代码不起作用的原因是,您试图重定向单击按钮时请求的POST调用的响应。您需要做的是注册一个javascript,它将在 Sitecore的响应再次出现后重定向父窗口,就像TwentyGotoTen在下面的帖子中所写的那样。
public override void Execute(CommandContext context)
{
Sitecore.Web.UI.Sheer.SheerResponse
.Eval("window.top.location.href='http://google.com';");
}