2009-03-26 17 views
6

J'utilise TinyMCE pour fournir aux utilisateurs la possibilité de mettre en forme du texte simple (gras, italique, listes) sur un champ de formulaire textarea. Everthing fonctionne correctement, sauf dans Internet Explorer (8 mais je l'ai lu sur les versions antérieures), lorsque les utilisateurs saisissent une URL (par exemple www.google.com), il est automatiquement converti en un lien HTML dans l'éditeur TinyMCE car ils type. Cela n'arrive pas dans Firefox (3). Comment puis-je empêcher IE de le faire?Empêcher TinyMCE/Internet Explorer de convertir des URL en liens

J'ai initialisés TinyMCE ce qui suit:

tinyMCE.init({ 
    mode : "textareas", 
    theme : "simple", 
    convert_urls : false 
}); 

Mais je ne pense pas que convert_urls vise à influer sur le comportement que je décris: http://wiki.moxiecode.com/index.php/TinyMCE:Configuration/convert_urls

J'ai essayé:

function myCustomURLConverter(url, node, on_save) { 
    return url; 
} 

tinyMCE.init({ 
    mode : "textareas", 
    theme : "simple", 
    urlconverter_callback : "myCustomURLConverter" 
}); 

Mais de même je pense que c'est juste un moyen d'affecter comment/si les URL sont convertis lors du chargement/enregistrement, pas pour les empêcher d'être convertis en liens en tant qu'utilisateur Type de s: http://wiki.moxiecode.com/index.php/TinyMCE:Configuration/urlconverter_callback

La question que je suis en train de fixer est décrit dans au moins deux endroits: http://tinymce.moxiecode.com/punbb/viewtopic.php?id=2182&p=1 (troisième poste, par tommya) http://drupal.org/node/149511

Quelqu'un at-il vu cela avant ou avoir une suggestions sur la façon de le réparer? La base de code de TinyMCE est assez grande et difficile à retracer, j'espérais que quelqu'un pourrait m'aider à isoler un peu le problème.

+0

Je suppose que vous J'ai essayé cette réponse: http://tinymce.moxiecode.com/punbb/viewtopic.php?pid=15856#p15856 –

+0

Oui, j'ai vu ça. Le code référencé dans ce post a changé depuis 2006, ce qui n'est malheureusement pas aussi utile que je le pensais autrefois. Cela dit, si je passais par le JS dans le fichier référencé, je pourrais être en mesure de désactiver la conversion d'URL. joelpittet a un raccourci dans sa réponse ci-dessous cependant. – jlpp

Répondre

3

Ne semble pas être un moyen de désactiver cela dans IE. Cela semble être une "fonctionnalité" et ça se passe aussi sur FCKEditor. Quelques alternatives, retirez l'élément des éléments valides. Ou effectuez une analyse de balise côté serveur pour le supprimer.

Je pense que cela peut être la « caractéristique » http://msdn.microsoft.com/en-us/library/aa769893(VS.85).aspx

Et voici peut-être un indice dans la faire fonctionner, mais il avait l'air d'ActiveX et VB donc je suis perdu assez rapide dans mon expérience http://www.mindfrost82.com/showpost.php?p=1114381&postcount=2

+0

J'ai désactivé les balises d'ancrage en n'autorisant que des balises de mise en forme simples dans l'init: valid_elements: "strong/b, em/i, p, br, ul, ol, li, strike" Cela n'a pas empêché IE de le faire la conversion initiale mais au moins cela empêche le lien d'être enregistré dans la base de données. Merci pour l'aide Joel! – jlpp

1

Voici une solution de contournement qui nécessite le plugin de collage. Dans votre TinyMCE config init, ajouter:

paste_preprocess : function(pl, o) { 
    // Strip <a> HTML tags from clipboard content (Happens on Internet Explorer) 
    o.content = o.content.replace(/(\s[a-z]+=")<a\s[^>]+>([^<]+)<\/a>/gi, '$1$2'); 
} 
2

Je pense que je l'ai résolu de cette façon:

remove_script_host: "false", 
relative_urls: "false", 
document_base_url : "http//www.mywebsite.nlhttp://www.mywebsite.nl", 
0

Je l'ai résolu ce problème avec ces configs:

remove_script_host : false, 
auto_cleanup_word : false, 
relative_urls : false, 
convert_urls : false, 
verify_html : false, 
convert_newlines_to_brs : false, 
urlconvertor_callback: "convLinkVC", 
document_base_url : "", 
forced_root_block : '', 
Questions connexes