1

我正在尝试使用 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=&quot;$JSPFILENAMES.getAbsoluteJSPName(&quot;LOGIN_JSP&quot;)?type=7&quot;>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' );
           }
        });
    }
});
4

1 回答 1

1

双引号内不能有双引号。您可以在单引号内使用双引号,也可以在双引号内使用单引号。如果您确实想在双引号内使用双引号,则需要在引号前添加正斜杠,即: "$JSPFILENAMES.getAbsoluteJSPName(\"LOGIN_JSP\")?type=7"

于 2012-09-04T02:31:23.220 回答