我想向 sitecore 页面编辑器功能区添加一个按钮,并希望它用作链接。例如,当我单击此按钮时,页面应重定向到HOMEURL/sample.aspx。
我写了一个从命令继承的类。
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
配置中注册命令。在包含内容的App_Config/Include
中创建自己的MyCommands.config
文件:
<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';");
}
重定向需要在客户端完成,这可以通过在命令中添加这样的东西来实现:
SheerResponse.Eval("window.parent.location.href='/sample.aspx';");