我正在尝试在使用CKEditor的PasteFromWord插件时强制将属性添加到特定链接。
我正在查看pastefromword / filter文件夹中default.js的以下部分,但似乎没有任何内容对粘贴的代码产生任何影响。
private async Task UniversallyEmail(string email, string subject, string messageBody)
{
messageBody = Uri.EscapeDataString(messageBody);
string url = $"mailto:{email}?subject={subject}&body={messageBody}";
await Launcher.LaunchUriAsync(new Uri(url));
}
我尝试了a.setAttribute('class','myclass'),a.class ='myclass'但没有添加任何内容。
我希望检查a.href是否包含单词'javascript'并添加class属性(如果包含)。
我是否在寻找合适的地方?
感谢。
答案 0 :(得分:0)
此解决方案(或hack)适用于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;
},
现在,如果您的粘贴链接中包含字符串' javascript',则会将myclass
添加到{{1}}。