1

ckeditor を使用してリンクを追加しようとしています。

<a href="$JSPFILENAMES.getAbsoluteJSPName("LOGIN_JSP")?type=7">login</a>

ckeditor のハイパーリンク アイコンをクリックして、$JSPFILENAMES.getAbsoluteJSPName("LOGIN_JSP")?type=7 を貼り付けています。これを行うと、リンクは href="$JSPFILENAMES.getAbsoluteJSPName(" で作成されます。最初の二重引用符の後のものはすべて削除されます。この問題の解決策を見つける必要があります。私ができない 2 つの解決策を考えることができます。さまざまな制約があるため、実装することはできません。

解決策 1: login のような二重引用符の代わりに単一引用符を使用して、href でハイパーリンクを作成します。ckeditor にはこれを達成するための設定がありますか?

解決策 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 に答える