2015-04-29 70 views
0

我必須使用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文件中的鏈接不再起作用。

任何人都知道如何解決這個問題?謝謝。我不想手動允許所有允許的標籤或屬性,因爲這可能是很多工作。

回答

1

這是CKEditor中的一個bug(也稱爲「缺少特徵」)。它無法正確處理以「:href」結尾的屬性。

我報了http://dev.ckeditor.com/ticket/13233其中還包括一個可能的補丁。如果這是正確的,那麼這個問題將在下一個小版本中得到解決。

+0

謝謝。用推薦的正則表達式更新ckeditor.js,現在工作正常。 '/([\ w - :] +)\ s * = \ s *(?:(?:「[^」] *「)|(?:'[^'] *')|(?: [^「'>] +))/ gi' – tala9999

+0

@ tala9999可以請您發佈您的工作ckeditor.js嗎?我試過用你的例子編輯,但ckeditor正在破譯。 – user2519032

相關問題