在sitecore的新选项卡中打开的返回url的保持类型应该是什么

本文关键字:url 返回 是什么 类型 新选项 sitecore 选项 | 更新日期: 2023-09-27 18:07:36

我正在使用响应。重定向保存url,打开同一页面上的链接,在新选项卡中打开链接还可以做什么?

public partial class DocumentLink : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if(!Page.IsPostBack)
        {
            try
            {
                Sitecore.Data.Fields.LinkField linkField = SitecoreItem.CurrentItem.Fields["DocumentLink"];
                Response.Redirect(GetUrl(linkField));
            }
            catch (Exception ex)
            {
                Sitecore.Diagnostics.Log.Error(ex.ToString(), this);
            }
        }
    }
    public string GetUrl(Sitecore.Data.Fields.LinkField LinkField)
    {
        try
        {
            string url = "";
            switch (LinkField.LinkType)
            {
                case "internal":
                case "external":
                case "mailto":
                case "anchor":
                case "javascript":
                    url = LinkField.Url;
                    break;
                case "media":
                    MediaItem media = new MediaItem(LinkField.TargetItem);
                    url = Sitecore.StringUtil.EnsurePrefix('/', MediaManager.GetMediaUrl(media));
                    break;
                case "":
                default:
                    break;
            }
            return url;
        }
        catch (Exception ex)
        {
            Sitecore.Diagnostics.Log.Error(ex.ToString(), this);
            throw;
        }
    }
}

在sitecore的新选项卡中打开的返回url的保持类型应该是什么

您需要执行javascript代码来打开一个新选项卡。可以使用以下代码执行:

ClientScript.RegisterStartupScript(
    this.GetType(), 
    "newTab" + DateTime.Now.Ticks, 
    String.Format("<script>window.open('{0}');</script>", GetUrl(linkField)));

您可以在这里找到有关动态添加客户端脚本的更多信息http://msdn.microsoft.com/en-us/library/ms178207.aspx。

浏览器可能会阻塞新窗口

为什么需要重定向?您没有在页面上显示指向文档的链接吗?

如果是的话,我只需要添加一个css类的链接,并使用一些jQuery使所有这些链接在一个新的窗口打开。

使用jQuery在新窗口中打开链接

$(document).ready(function(){
    $('.external-link').click(function(event){
        event.preventDefault();
        window.open(this.href);
    });
});

注意,你不能强迫链接在一个新的选项卡中打开,这取决于用户的偏好,他们是否希望在选项卡中打开新的窗口。

您可以使用Sitecore的链接webcontrol并将字段名称传递给它,Sitecore将自动呈现您的GenralLinkField的所有属性

<sc:Link runat="server"  Field="DocumentLink">