一般来说如果我从http://abc.com/about.html把下面一段带有相对路径的文字粘贴到一个富文本编辑器
xxhelp
应当自动转换为如下形式
xxhelp

这样里面的相对路径链接才不会失效,但是发现tinyMCE在ie下面却不会自动转换。以为其他网站也会这样,但是试了一下sina博客的编辑器却没有这个问题,看来应该是tinyMCE本身的问题。

查了许久,发现tinyMCE即使不传document_base_url这个参数也会自作聪明的加一个<base />标签,而href的值就是当前路径。从而导致ie不再自动转换粘贴内容里的相对路径,所以只要删除这个元素便可解决问题,hack如下:

(function()
{
    tinymce.create('tinymce.plugins.bluePatch', {
    
        init : function( ed, url )
        {
            ed.onInit.add( function( ed, cm)
            {
                var b = ed.getDoc().getElementsByTagName( 'base' )[ 0 ];
                //发现直接删除会出问题,所以删除href就够了
                b.removeAttribute( 'href' );
            });
        }
    });

    tinymce.PluginManager.add( 'bluePatch', tinymce.plugins.bluePatch );
})();