0

サイトコアに、内部または外部リンクを持つことができる一般的なフィールドがあります。外部リンクのみに target="_blank" を追加する必要があります。

Sitecore の「Insert External Link」をクリックしてターゲット ウィンドウを新しいブラウザとして設定しようとしましたが、使用できません。

コードからも target=_blank を追加しても問題ありません。

コード :

        UrlOptions urlOptions = new UrlOptions();
        urlOptions.LanguageEmbedding = LanguageEmbedding.Never;                        

        Title = FieldRenderer.Render(item, "Title");            
        Summary = FieldRenderer.Render(item, "Short Description");
        Details = FieldRenderer.Render(item, "Details");
        Sitecore.Data.Fields.LinkField lf = item.Fields["TitleUrl"];

        if (lf.Url != "")
        {                              
            ItemUrl = EFI.Library.SitecoreDataUtil.GetUrlForLinkField(lf, item, urlOptions);                

        }
        else
        {
            ItemUrl = LinkManager.GetItemUrl(item);
        }
4

3 に答える 3

5

次のことを試しましたか?

target="_blank" を使用して Sitecore で一般的なリンクをレンダリングする

言語を埋め込みたくない場合は、次のように設定して、web.config のすべてのリンクに言語を設定できlanguageEmbedding="never"ます。

<linkManager defaultProvider="sitecore">
  <providers>
    <clear />
    <add name="sitecore" type="Sitecore.Links.LinkProvider, Sitecore.Kernel" addAspxExtension="true" alwaysIncludeServerUrl="false" encodeNames="true" languageEmbedding="never" languageLocation="filePath" shortenUrls="true" useDisplayName="false" />
  </providers>
</linkManager>

または、 http で始まるすべてのアンカー タグで jQuery を使用して、新しいウィンドウでリンクを開くこともできます。

$(document).ready(function(){
  $('a[href^=http]').click(function(){
    window.open(this.href);
    return false;
  });
});
于 2013-05-16T06:31:04.453 に答える
0

興味深いことに、 <sc:link /> コントロールについて言及されていません。

<sc:link runat="server" field="TitleUrl" />

以上です。CMS で選択されたリンクのターゲットが適用されます。もちろん、コンテンツ作成者が正しいターゲットを選択するかどうかによって異なりますが、「ルールの例外」に対して十分な柔軟性があります。とにかく、そこに別のオプションを投げるだけです。幸運を。

于 2013-05-16T13:30:21.117 に答える