如何在CKEDITOR中保存数据库中的图像源时使用绝对URL

时间:2012-01-25 03:54:02

标签: javascript jquery ckeditor

我正在使用CKEDITOR创建简报。一切都很顺利但是当我发送新闻通讯到电子邮件时,那里存储的图像不会显示。该问题是由CKEDITOR使用图像源的相对路径引起的,例如, <img src='/newsletter_images/news1/img1.jpg'>

我希望CKEDITOR使用绝对网址,例如:

<img src='http://www.mydomain.com/newsletter_images/news1/img1.jpg' />

我尝试的初始化如下:

<script type="text/javascript">
    $(document).ready(function() {
        $('#editor1').ckeditor({ baseHref: "http://www.google.com/" });
    });
</script>

但没有用。

我发现使用baseUrlbaseDir找到的一些帖子可以解决问题。我试过这个:

 $('#editor1').ckeditor({
                   baseHref: "http://www.mydomain.com/",
                   baseUrl: "http://www.mydomain.com/newsletter/",
                   baseDir: "/newsletter/"
 });

但这也不起作用。

3 个答案:

答案 0 :(得分:4)

我认为这个问题与ckeditor主要用于基于网页的使用有关。当您通过电子邮件发送所有这些内容时,我认为ckeditor不再为您跟踪 baseHref

如果您在发送电子邮件之前找到了将 baseHref 添加到每个链接的方法(使用您可能正在使用的任何服务器端语言),它可能会得到以下结果:你想要的。

像这样(伪代码):

// get ckeditor text
// find/replace <a href=""></a> links with baseHref + link
// mail result

答案 1 :(得分:0)

根据ckeditor文档,这是如何设置的:

  

{String} CKEDITOR.config.baseHref从:3.0基本href   用于解析编辑器内容中的相对和绝对URL的URL。   config.baseHref ='http://www.example.com/path/';默认值: ''   (空字符串)

http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.html

答案 2 :(得分:0)

baseUrl是您要搜索的设置,但它是您必须在服务器中设置的CKFinder设置。它不能在javascript上设置,当然也不能在CKEditor实例上设置。