我正在尝试使用 ckeditor 添加链接。
<a href="$JSPFILENAMES.getAbsoluteJSPName("LOGIN_JSP")?type=7">login</a>
我单击 ckeditor 上的超链接图标并粘贴 $JSPFILENAMES.getAbsoluteJSPName("LOGIN_JSP")?type=7。当我这样做时,链接是使用 href="$JSPFILENAMES.getAbsoluteJSPName(" 创建的。删除第一个双引号之后的任何内容。我需要找出解决这个问题的方法。我可以想到 2 个我无法解决的解决方案由于各种限制而无法实施。
解决方案 1:使用单引号而不是像登录这样的双引号创建带 href 的超链接。ckeditor 是否有设置来实现这一点?
Sultion 2:创建一个可以插入链接的自定义下拉菜单。这样我可以用单引号创建href。但这也不起作用,因为如果我使用引号或双引号或 ",ckeditor 将失败。或在我需要使用以下代码插入的文本中转义字符。
CKEDITOR.plugins.add( 'links_tokens', {
requires : ['richcombo'], //, 'styles' ],
init : function( editor ) {
var config = editor.config,
lang = editor.lang.format;
var login_link = '<a href="$JSPFILENAMES.getAbsoluteJSPName("LOGIN_JSP")?type=7">login</a>';
var links_tags = [];
links_tags[0]=[login_link, "Login", "Login"];
links_tags[1]=["$company.getcompany_url()", "URL", "URL"];
editor.ui.addRichCombo( 'links_tokens', {
label : "Links tokens",
title :"Links tokens",
voiceLabel : "Links tokens",
className : 'cke_format',
multiSelect : false,
panel : {
css : [ config.contentsCss, CKEDITOR.getUrl( editor.skinPath + 'editor.css' ) ],
voiceLabel : lang.panelVoiceLabel
},
init : function() {
this.startGroup( "Links tokens" );
for (var this_tag in links_tags){
this.add(links_tags[this_tag][0], links_tags[this_tag][1], links_tags[this_tag][2]);
}
},
onClick : function( value ) {
editor.focus();
editor.fire( 'saveSnapshot' );
editor.insertHtml(value);
editor.fire( 'saveSnapshot' );
}
});
}
});