我必須使用CKEditor來允許用戶編輯一些可能包含SVG圖像的HTLM頁面。並且這些SVG圖像中定義的鏈接包含一些屬性,如xlink:href。例如:即使當allowedContent設置爲true,CKEditor 4也會在A標記中刪除xlink:href
<svg preserveaspectratio="xMinYMin meet" version="1.1" viewbox="0 0 778 873" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<image height="100%" width="100%" xlink:href="map.png"></image>
<g class="hover_group" opacity="1">
<a xlink:href="http://www.google.com">
<rect fill="red" height="100" opacity="0.0" width="160" x="110" y="240"></rect>
</a>
</g>
</svg>
我已經設置了CKEDITOR.config.allowedContent = true,希望所有的標籤和屬性都會被編輯器保留。
然而,當我來回切換WYSIWYG和HTML模式之間,我注意到,A標記變成這樣:
A HREF = 「http://www.google.com」 的xlink:= 「」
<svg preserveaspectratio="xMinYMin meet" version="1.1" viewbox="0 0 778 873" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<image height="100%" width="100%" xlink:href="map.png"></image>
<g class="hover_group" opacity="1">
<a href="http://www.google.com" xlink:="">
<rect fill="red" height="100" opacity="0.0" width="160" x="110" y="240"></rect>
</a>
</g>
</svg>
這種現象只發生在一個標記,而不是圖像標記。
當然,這使得SVG文件中的鏈接不再起作用。
任何人都知道如何解決這個問題?謝謝。我不想手動允許所有允許的標籤或屬性,因爲這可能是很多工作。
謝謝。用推薦的正則表達式更新ckeditor.js,現在工作正常。 '/([\ w - :] +)\ s * = \ s *(?:(?:「[^」] *「)|(?:'[^'] *')|(?: [^「'>] +))/ gi' – tala9999
@ tala9999可以請您發佈您的工作ckeditor.js嗎?我試過用你的例子編輯,但ckeditor正在破譯。 – user2519032