TinyMCE:如何在上传图像时保留相对URL但在使用"插入链接"时使用绝对URL选项?

时间:2016-04-20 00:39:06

标签: javascript php tinymce tinymce-4

TinyMCE版本:4.3.10
用于上传图片的插件:jbimages

我需要存储两个图像的绝对路径以及添加到表单的任何链接,以便可以通过电子邮件发送消息。然而,切换" relative_urls"其中一个搞砸了。

例如:

relative_urls:true
此设置会生成正确的链接。但是,通过jbimages上传的任何图像都会产生相对链接,这对电子邮件没有好处。图像存储为" images / 21312.png"。这不会在电子邮件中打开,因为它错过了域名前缀。

relative_urls:false
通过jbimages上传时,此设置会生成正确的图像URL。但是,所有其他链接都以文档根URL为前缀。换句话说,链接添加为" example.org"转入" www.example.com/example.org" ;,其中example.com是我的域根。

理想的结果是将链接保存为绝对链接而不是前缀,而上传的图像则以域名的URL为前缀。

如果没有设置来容纳上述内容,是否还有其他插件可以将图像上传到正文中?我尝试拖放,但是将图像转换为base64并且不能始终正常工作。

由于

3 个答案:

答案 0 :(得分:2)

我会看一下这个附加参数:

https://www.tinymce.com/docs/configure/url-handling/#remove_script_host

根据文档:

  

如果启用此选项,则为URL的协议和主机部分   返回将被删除。仅当relative_urls选项设置为false

时才使用此选项      

如果禁用,将以以下格式返回网址:   http://www.example.com/somedir/somefile.htm而不是默认值   格式:/somedir/somefile.htm

此处将审核网址操作的整个主题:https://www.tinymce.com/docs/configure/url-handling/

如果一切正常,除了JBImages插件之外,我会问插件创建者是否有任何可以更改的设置来解决此问题。

答案 1 :(得分:2)

在@Michael Fromin的帮助下,我结合他的回答/评论解决了这个问题:

我需要设置以下内容:

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

在我的用例中,使用jbimages来上传图像的URL是可预测的,因此我可以检查它的前X个字符。没有理由任何人(在我的网站中)链接到以“/ system”开头的URL,因此我可以安全地假设从TinyMCE以“/ system”开头的任何URL都是上传的图像。

答案 2 :(得分:1)

尝试添加配置tinyMCE:

convert_urls : 0