2012-04-04 71 views
2

我正在自定義功能區工具欄併爲其添加一個按鈕。每當我點擊該按鈕時,它都會打開一個aspx頁面,允許作者選擇一些數據,這些數據會被附加到 現有的RTF字段內容中。如何將數據從aspx頁面返回到RTF字段?

我們的要求是返回數據作爲鏈接,即錨點元素,每當作者點擊鏈接彈出頁面必須打開並允許作者選擇其他選項;點擊提交按鈕後,新值必須替換爲舊值。

挑戰是:

目前,彈出網頁是由一個Javascript成爲這是一個切入點,以顯示aspx頁面打開。作者選擇數據並提交,它是返回值並附加到RTF字段的這個javascript。 現在當彈出頁面作爲獨立頁面打開時,如何從中返回數據。

早期的反應將不勝感激。

在此先感謝。

回答

1

如果它只是將內容附加到RTF字段,那麼使用自定義URL是不是很少工作?

自定義URL是一個可以在Schema字段上設置的鏈接,它將在組件中顯示爲該字段標題上的鏈接。這將打開一個帶有指定URL的彈出窗口,然後您可以直接返回該字段(允許您添加或替換現有內容)。

<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> 

這就是:

關於這一主題的文檔可以在http://docportal.sdl.com/sdltridiondirect topic link

用於覆蓋或追加內容的文本字段看起來像這樣的例子自定義URL的HTML頁面中找到一個HTML頁面,你應該把它放在.. \ Tridion \ web文件夾中(我通常在那裏創建一個CustomURL子目錄,所以你可以參考它:/CustomUrl/example.html)

+0

感謝您的迴應。你能解釋我如何使用自定義URL來替換內容嗎? – 2012-04-05 06:18:26

+0

添加了附加和覆蓋選項的自定義url html頁面的示例。 – 2012-04-05 09:51:43

相關問題