9

私はしばらくの間これを解決しようとしてきましたが、適切に機能するものを思い付くことができません。

ご覧のとおり、私たちのサイトには、クリック可能な画像または div が多数あり、画像全体にコンポーネントリンクが含まれています。XPM を有効にしてコンポーネントを選択しようとすると、コンポーネント リンクのクリック イベントが発生し、正しいページに誘導されます。

編集時のみこの動作を無効にする簡単な解決策を探していましたが、これまでのところ、率直に言って私が探しているものではないいくつかの回避策を思いつきました.

たとえば、素晴らしい Razor Mediator 条件 (IsSiteEditEnabled) を使用できますが、現在のパブリケーション/ページ/サーバーでサイト編集が有効になっている場合、この関数は常に true に解決されます。これは、次のようなテンプレート固有のコードを挿入すると、

@if(!IsSiteEditEnabled){
<a tridion:href="#"> other code, ending in closing of </a>...
}

サイト編集 (XPM) がアクティブ化されていないが、アクティブ化できる場合、リンクは出力されません。要するに、ステージングサーバー。

他に選択肢がない限り、コードを機能させるには Live パブリケーション サーバーが必要ですが、これにより編集者がステージング サーバーでリンクが壊れていると判断するという問題が発生します。

ここに欠けているものがあると感じています。この問題はあなたのような人が遭遇した可能性があると思います:)

これはブロックの1つです

<article class="block-2x2 banner">
    <tcdl:ComponentField name="component_link"></tcdl:ComponentField>
    @if(!IsSiteEditEnabled){
        @:<a tridion:href="@Fields.component_link">
        }
        <div class="image-container">
            <tcdl:ComponentField name="image"><img src="@Fields.image" alt="@Fields.image.altText"></tcdl:ComponentField>
        </div>
        <div class="hgroup">
            <h4 class="primary-title">@RenderComponentField("header", 0)</h4>
            <h5 class="secondary-title">@RenderComponentField("title", 0)</h5>
        </div>
    @if(!IsSiteEditEnabled){</a>}
</article>
4

3 に答える 3

4

次のような他の形式を入れることを検討するかもしれません。

@if(!IsSiteEditEnabled){
   <a tridion:href="#"> other code, ending in closing of </a>...
}else{
   <a href="#" onclick="alert('Image links not supported in XPM');"></a>
}

これは少なくとも、編集者にとってリンクが機能しない理由を説明するはずです。これで実際に問題が解決するかどうかはテストしていませんが。

属性を追加するだけでclass="NoClickImageLink"、onclic イベントをタグに関連付けるページがロードされたときに、そのクラスを持つすべてのタグに JavaScript アクションを追加する方がクリーンです。

于 2013-02-15T21:11:11.100 に答える
2

JQuery を使用する場合、次のコードを使用してアンカー リンクが機能しないようにすることができます。

$('a').click(function(event) {
    event.preventDefault();
});

$(this)クリックした要素を参照し、作業を続けるためにいくつかのアンカーリンクが必要な場合に確認できます。

このコードは、XPM で編集している場合に挿入でき、テンプレートを大幅に簡素化します。

PS。私はこの提案をテストしませんでした。

于 2013-02-21T10:23:25.263 に答える