2012-04-04 8 views
2

リボンツールバーをカスタマイズしてボタンを追加しています。そのボタンをクリックすると、aspxページが開き、作成者はいくつかのデータを選択できるようになり、 既存のRTFフィールドコンテンツに追加されます。aspxページからRTFフィールドにデータを返す方法は?

著者がリンクポップアップページをクリックして他のオプションを選択できるようにするたびに、アンカー要素、つまりアンカー要素としてデータを返します。送信ボタンをクリックすると、新しい値を古い値に置き換える必要があります。

課題は以下のとおりです。

現在のポップアップページがaspxページを表示するには、エントリポイントであるjavascript-によって開かれます。作成者はデータを選択して送信します。値を返し、RTFフィールドに追加されるのはこのjavascriptです。 ポップアップページを独立したページとして開いたときに、そのページからデータを返す方法。

早期の対応に感謝します。

ありがとうございます。

答えて

1

RTFフィールドにコンテンツを追加するだけの場合は、カスタムURLを使用するほうがはるかに少ないでしょうか?

カスタムURLは、そのフィールドのタイトルのリンクとしてコンポーネントに表示されるスキーマフィールドで設定できるリンクです。これにより、指定されたURLのポップアップが開き、そこから直接フィールドに戻ることができます(既存のコンテンツに追加または置き換えることができます)。

このトピックに関するドキュメントがhttp://docportal.sdl.com/sdltridionで見つけることができます(direct topic link

たとえばテキストフィールドにコンテンツを上書きするか、追加のカスタムURLのHTMLページは次のようになります。

<html> 
<head> 
<title>Custom URL example</title> 
<style> 
body { 
    background:#fafafa; 
    font-family:arial,helvetica,sans-serif; 
    font-size:12px; 
    line-height:1.5em; 
} 
a { 
    color:#000; 
    font-weight:bold; 
    text-decoration:none; 
} 
a:hover { 
    color:#666; 
} 
</style> 
<script type="text/javascript" language="javascript" src="/WebUI/Core/Controls/Popup/PopupInit.js"></script> 
<script language="JavaScript"> 
    function overwrite(value) { 
     var fields = window.dialogArguments.getFields(); 
     if (fields && fields.length > 0) { 
      if (fields[0].getValues() != null && fields[0].getValues()[0] != null && fields[0].getValues()[0].length > 0) { 
       if (!confirm('This will overwrite the existing content of the field. Continue?')) { 
        return; 
       } 
      } 
      fields[0].setValues([value]); 
      window.close(); 
     } 
    } 
    function append(value) { 
     var fields = window.dialogArguments.getFields(); 
     if (fields && fields.length > 0) { 
      var current = ''; 
      if (fields[0].getValues() != null && fields[0].getValues()[0] != null && fields[0].getValues()[0].length > 0) { 
       current = fields[0].getValues()[0]; 
      } 
      fields[0].setValues([current + value]); 
      window.close(); 
     } 
    } 
</script> 
</head> 
<body> 
    <h1>Make a choise</h1> 
    <p><a href="javascript:overwrite(' - dummy content - ')">overwrite current value</a></p> 
    <p><a href="javascript:append(' - dummy content - ')">append to current value</a></p> 
</body> 
</html> 

これは、 .. \ Tridion \ webフォルダのどこかに配置するHTMLページ(私は通常、そこにCustomURLサブディレクトリを作成するので、/CustomUrl/example.htmlのように参照できます)

+0

ありがとうございます。カスタムURLを使用してコンテンツを置き換える方法を教えてください。 –

+0

に、appendオプションとoverwriteオプションを持つカスタムurl htmlページの例を追加しました。 –

関連する問題