在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;
}
}
}
您需要执行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">