TinyMce带有超链接绝对网址的问题

时间:2015-12-17 19:30:58

标签: url hyperlink tinymce absolute

我在textarea输入表单中添加了tinyMce编辑器。 不幸的是我发送超链接绝对网址时遇到了麻烦。

我在php CMS中动态创建页面。

我可以启动tinyMce,我可以发送格式化文本。 当我尝试添加url时,最终结果不是我添加的绝对url,但它前面是另一个字符串url,如下所示:

//Input url: www.example.it, will process the following result:
//http://www.myDomain.example/folder/\"http://www.example.it\"

因此,最终链接不起作用,即使在tinyMce预览中,所有内容似乎都很好。

我按照官方网站常见问题解答中的说明来设置初始值:

tinymce.init({
  selector: 'textarea',  // change this value according to your HTML
  relative_urls : false,
  remove_script_host : true,
  document_base_url : 'http://www.mydomain.example/folder/'
});

2 个答案:

答案 0 :(得分:1)

这是一个非常讨厌的问题。请注意您输入的网址周围的转义引号?你有magic_quotes设置为开!我只花了2个小时跟踪再次这个错误,所以我想我最好在网站上记录它。

在将网址保存到数据库之前添加:

if  (get_magic_quotes_gpc())
    foreach ($row as &$value)
        $value = stripslashes($value);

这将删除转义的引号并允许浏览器识别绝对网址。

答案 1 :(得分:0)

另一种可能有用的解决方案,您可以使用该文档来创建处理此问题的函数 TinyMce urlconverter_callback

因此您可以添加

relative_urls: true
remove_script_host: false
urlconverter_callback : 'customURLConverter'

,并使用 customURLConverter 函数 您可以使用类似

function customURLConverter(url, node, on_save, name)
{
    var checkURL;
    var urlPrefix;

    // Get the first 7 characters of the string
    checkURL = url.substring(0, 7);

    // Determine if those characters are coming from the image uploader
    if(checkURL === "/system")
    {
        // prefix the incoming URL with my domain
        urlPrefix = 'https://www.example.com';
        url = urlPrefix.concat(url);
    }

    // Return URL
    return url;
}