2017-09-23 96 views
0

我試圖強制一個屬性被添加到特定的鏈接時使用CKEditor的PasteFromWord插件。CKEditor - PasteFromWord添加一個類到屬性

我正在查看pastefromword/filter文件夾中的default.js的以下部分,但似乎沒有任何區別粘貼的代碼。我試過a.setAttribute('class','myclass'),a.class ='myclass',但沒有添加任何內容。

我想檢查一下,如果a.href包含'javascript'這個詞並且添加了class屬性。

我甚至在正確的地方看嗎?

謝謝。

+0

您正在使用哪種版本的CKEditor? – Atzmon

+0

@Atzmon - 使用CKEditor 4 - thx – RobertyBob

回答

0

此解決方案(或破解版)適用於CKEditor 4.5.7,因此您可能需要進行調整以適合您的特定版本。

首先,您要檢查href並添加類的位置正確,這樣你就可以將此代碼或類似的東西:

a: function(a) { 
    a = a.attributes; 
    if (attrs.href && attrs.href.indexOf('javascript') != -1) { 
     attrs.class = 'myclass'; 
    } 

下,找到這段代碼很長getRules函數內進一步下跌(根據您的版本,它可能會有點不同):

'class': function (value, element) { 
    if (element.classWhiteList && element.classWhiteList.indexOf(' ' + value + ' ') != -1) { 
     return value; 
    } 
    return false; 
}, 

現在您需要重寫類過濾器。最簡單的黑客是添加你的類名聯,硬編碼,就像這樣:

'class': function (value, element) { 
    if ((value == 'myclass') || (element.classWhiteList && element.classWhiteList.indexOf(' ' + value + ' ') != -1)) { 
     return value; 
    } 
    return false; 
}, 

現在你會得到myclass添加到您的粘貼的鏈接,如果它們包含字符串「的javascript」。

+0

Thx Atzmon - 將在早上檢查並告知您 – RobertyBob

+0

我今天嘗試過,似乎沒有添加任何內容 - 我將'attrs'更改爲'a'以符合之前的在檢查之後,我還修改了getRules部分以符合'getRules:function(a,c){'而不是(value。element),但仍然不好。我現在不能確定插件甚至被使用,因爲即使是簡單的添加或警報也不會觸發。將再次嘗試tmrw。 – RobertyBob

+0

如果您不確定插件是否已激活,請在'a = a.attributes;'之前或之後添加'debugger;'命令,清除瀏覽器緩存並啓動開發工具(Chrome中的F12)。然後使用超鏈接粘貼Word中的某些內容,並查看執行是否在調試器命令處停止。 – Atzmon