2011-03-21 57 views
4

我在我的網站上使用CLEditor(CLEditor),並且它運行良好,只是我希望能夠設置_blank鏈接的目標,但即使在調查時也無法弄清楚來源。更改CLEditor中的錨標記

有沒有誰可以幫我在編輯器中進行鏈接有_blank的目標

感謝

回答

1

您可以在屬性添加到每個環節:

$("#cleeditor iframe").contents().find("a[href]").attr("target", "_blank"); 
+0

感謝您的回答。你建議在提交之前運行該功能嗎?我可以看到這個工作,但我可以想象通過改變按鈕的工作方式會有更清晰的解決方案。但我無法完全理解源代碼:$。我會暫時執行此操作,謝謝。 – Femke 2011-03-21 19:59:09

+0

所以它適合你嗎?那麼你應該檢查我的答案。 – mattsven 2011-03-21 21:12:30

+0

我仍然希望有更好的答案。當它今天不來時,我會使用(並檢查)這個解決方案。 – Femke 2011-03-22 06:44:40

1
(function($) { 

// Define the lien button 
$.cleditor.buttons.lien = { 
    name: "lien", 
    image: "lien.gif", 
    title: "Add link", 
    command: "inserthtml", 
    popupName: "Lien", 
    popupClass: "cleditorPrompt", 
    popupContent: 'Enter URL:<br><input type=text value="http://" size=35><br><input type=button value="submit">', 
    buttonClick: lienClick 
}; 

// Add the button to the default controls before the bold button 
$.cleditor.defaultOptions.controls = $.cleditor.defaultOptions.controls 
.replace("link", "lien link"); 

// Handle the lien button click event 
function lienClick(e, data) { 

    // Get the editor 
    var editor = data.editor; 

    if (editor.selectedText() === "") { 
     editor.showMessage("A selection is required when inserting a link.");    
     return false; 
    } 

    // Wire up the submit button click event 
    $(data.popup).children(":button") 
    .unbind("click") 
    .bind("click", function(e) { 

     // Get the entered name 
     var url = $(data.popup).find(":text").val();  
     var value = '<a href="' + url + '" target="_blank">' + editor.selectedText() + '</a>' 
     var success = editor.doc.execCommand("insertHTML", 0, value || null) 

     if (!success){ 
      editor.showMessage("Error executing the insertHTML command."); 
     } 
     // Hide the popup and set focus back to the editor 
     editor.hidePopups(); 
     editor.focus(); 

    });  
}  
})(jQuery); 

只需在功能execCommand中添加此按鈕或在提升機中替換:

try { 
     if(command.toLowerCase() == "createlink"){ 
     value = '<a href="' + value + '" target="_blank">' + getRange(editor) + '</a>' 
     success = editor.doc.execCommand("insertHTML", 0, value || null); 
     }else{ 
     success = editor.doc.execCommand(command, 0, value || null); 
     } 
    } 
2
$('textarea').cleditor({ 
    updateTextArea: function(html) { 
    var e = $('<div>').append(html); 
    e.find('a[href]').attr('target', '_blank'); 
    return e.html(); 
    } 
}); 
+0

謝謝,老兄!在我看來,這裏最好的解決方案。 :) – elias 2012-09-26 19:27:34