2011-07-07 44 views
1

這個環境是一個在前端使用jquery和jquery-ui的java web應用程序。有一個管理網站,他們可以創建出現在「參與者」網站上的內容。在哪裏做?

客戶端需要管理網站上的WYSIWYG類型編輯器,以便他們可以將HTML粘貼到出現在參與者網站上的textareas中。我一直在尋找其中的一些,並且使用cleditor做了一些實驗,它似乎很容易使用,並且它可以完成我想要的大部分工作。我還被建議在後端使用AntiSamy plugin以防止他們的「管理員」添加惡意代碼 - 我猜他們並不信任他們的管理員。

但是我有一個要求讓我撓頭。他們希望任何超鏈接添加到textareas進入另一個窗口(而不是每次不同的窗口)。所以基本上他們想要在每個href中有一個target="myWindow",我想。他們希望這適用於他們是否在編輯器中創建超鏈接,或者他們是否粘貼具有超鏈接的Word文檔,這似乎是他們做了很多事情。

我的問題是如何去應用這個target所有的hrefs。是否有一個wysiwyg編輯器會執行此操作,或者可以在AntiSamy插件中完成(因爲它已經解析了html)還是需要在兩者之間的某處執行?

回答

1

當用戶提交表單時,我會在頁面上的JavaScript中處理它。你可以遍歷所有的錨點標籤,並添加必要的目標位到最後。該過程將類似於這裏的答案:

jQuery - Change the anchor tag in CLEditor

1

我會在數據發佈後再做。使用JSOUP解析HTML很容易,併爲其添加新的目標。你也可以用RegEx來做。

另一種選擇是使用JavaScript和輕鬆地添加

$(".somediv a").attr('target', '_blank'); 

最後的選擇,如果你不知道基本標籤。你可以做<base target='_blank'/>這將使所有你的hrefs成爲一個新的目標。

編輯 -

而且賈斯汀指出的那樣,你可以發佈之前處理HREF。我不知道CKEdit有這個選擇。這可能是更好的解決方案。

+0

基礎標籤將無法正常工作,因爲這會影響到參與者的頁面上的所有的HREFs,不僅與管理產生的內容的人。但感謝您的建議。 –

+0

對,我說過全部,因爲我不認爲你可以控制頁面的哪一部分進行修改。我覺得賈斯汀的解決方案是最好的。祝你好運。並感謝+1 –