【问题标题】:Prevent TinyMCE/Internet Explorer from converting URLs to links防止 TinyMCE/Internet Explorer 将 URL 转换为链接
【发布时间】:2009-03-26 21:11:13
【问题描述】:

我正在使用 TinyMCE 为用户提供在 textarea 表单字段上进行简单文本格式化(粗体、斜体、列表)的功能。一切正常,除了在 Internet Explorer 中(8 但我读过它发生在早期版本上),当用户键入 URL(例如 www.google.com)时,它会在 TinyMCE 编辑器中自动转换为 HTML 链接,因为他们类型。这在 Firefox (3) 中不会发生。如何防止 IE 这样做?

我已经使用以下内容初始化了 TinyMCE:

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

但我不认为 convert_urls 旨在影响我所描述的行为:http://wiki.moxiecode.com/index.php/TinyMCE:Configuration/convert_urls

我试过了:

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

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

但同样,我认为这只是一种影响 URL 在加载/保存时如何/是否转换的方法,而不是防止它们在用户键入时转换为链接: http://wiki.moxiecode.com/index.php/TinyMCE:Configuration/urlconverter_callback

我正在尝试解决的问题至少在几个地方进行了描述: http://tinymce.moxiecode.com/punbb/viewtopic.php?id=2182&p=1(第三个帖子,作者 tommya) http://drupal.org/node/149511

有没有人以前见过这个问题或对如何解决它有任何建议? TinyMCE 代码库非常大且难以追踪,因此我希望有人可以帮助我稍微隔离一下问题。

【问题讨论】:

  • 我假设你已经尝试过这个答案:tinymce.moxiecode.com/punbb/viewtopic.php?pid=15856#p15856
  • 是的,我确实看到了。这篇文章中引用的代码自 2006 年以来发生了变化,所以不幸的是,它不像我以前确信的那样有用。也就是说,如果我单步执行引用文件中的 JS,我可能能够禁用 URL 转换。不过,joelpittet 在下面的回答中有一条捷径。

标签: javascript internet-explorer drupal tinymce


【解决方案1】:

似乎不是在 IE 中禁用它的方法。它似乎是一个“功能”,它也出现在 FCKEditor 上。几个替代方案,从有效元素中删除元素。 http://wiki.moxiecode.com/index.php/TinyMCE:Configuration/valid_elements

或者做一个服务器端标签解析来删除它。

我认为这可能是“功能” http://msdn.microsoft.com/en-us/library/aa769893(VS.85).aspx

这里可能是让它工作的提示,但它看起来像 ActiveX 和 VB,所以我在实验中很快迷失了方向 http://www.mindfrost82.com/showpost.php?p=1114381&postcount=2

【讨论】:

  • 我通过在 init 中只允许简单的格式化标签来禁用锚标签: valid_elements : "strong/b,em/i,p,br,ul,ol,li,strike" 这并没有阻止IE 不会进行初始转换,但至少它可以防止将链接保存到数据库中。感谢乔尔的帮助!
【解决方案2】:

我想我是这样解决的:

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

【讨论】:

    【解决方案3】:

    这是一个可行的解决方法,需要粘贴插件。 在您的 TinyMCE 初始化配置中,添加:

    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' );
    }
    

    【讨论】:

      【解决方案4】:

      我已经用这些配置解决了这个问题:

      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 : '',
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-10-26
        • 2015-06-28
        • 1970-01-01
        • 2017-08-19
        • 2012-12-28
        • 2015-04-22
        • 2018-01-30
        • 1970-01-01
        相关资源
        最近更新 更多