2015-02-10 82 views
4

我寫了自己的插件,它會生成一個簡單的鏈接。 奇怪的是我無法編輯「href」屬性。其他屬性可以編輯。CKeditor自己的插件與對話框

此元素不起作用:

{ 
    type: 'text', 
    id: 'url', 
    label: 'URL', 
    commit: function(element) { 
     element.setAttribute('href', this.getValue()); 
    }, 
    setup: function(element) { 
     this.setValue(element.getAttribute('href')); 
    } 
} 

當我創建一個鏈接,href屬性被寫入。當我編輯鏈接「href」屬性沒有改變。奇怪!

當我改變上面的代碼和示例的「href-S」改寫屬性的名稱:

{ 
    type: 'text', 
    id: 'url', 
    label: 'URL', 
    commit: function(element) { 
     element.setAttribute('href-s', this.getValue()); 
    }, 
    setup: function(element) { 
     this.setValue(element.getAttribute('href-s')); 
    } 
} 

創建和編輯屬性完美的作品。

你不知道什麼問題?

謝謝。

回答

3

由於各種內部原因,CKEditor使用data-cke-saved-href屬性在運行時複製href。所以看起來在輸出什麼樣的

<p>I&#39;m a <a href="http://foo.com">plain&nbsp;link</a>.</p> 

<p>I&#39;m a <a href="mailto:[email protected]?subject=Subject&amp;body=Body">mailto link</a>.</p> 

實際上是東西在不同的編輯DOM

<p>I'm a <a data-cke-saved-href="http://foo.com" href="http://foo.com">plain&nbsp;link</a>.</p> 

<p>I'm a <a data-cke-saved-href="mailto:[email protected]?subject=Subject&amp;body=Body" href="mailto:[email protected]?subject=Subject&amp;body=Body">mailto link</a>.</p> 

更新data-每次換href,事情應該去正確的時間屬性。

+0

太棒了,完美的作品。 – kevas 2015-02-10 10:55:27

+0

今天戰鬥完全相同的問題。多謝! – wwwmarty 2015-02-10 20:39:48