【问题标题】:Stop Umbraco/TinyMce from converting absolute URLs to relative URLs阻止 Umbraco/TinyMce 将绝对 URL 转换为相对 URL
【发布时间】:2015-06-28 20:16:24
【问题描述】:

Umbraco/TinyMce 都喜欢从编辑器中的任何绝对 URL 中去除基域。这是有问题的,因为我有一个 RSS 提要,它会抓取我的帖子,并每周通过电子邮件将它们发送给订阅者。问题是,图像(和链接,但我稍后会担心)如果它们的 URL 是相对的,显然将不起作用。

到目前为止,我已经完成了以下工作:

1) 添加到 tiny_mce_src.js:

convert_urls : false,
relative_urls : false,
remove_script_host : false,   

与现有的相反,对于 Umbraco,convert_urls 必须设置为 false。

使用媒体内容选择器(或内置的 HTML 编辑器),这将保留输入的内容(直到保存/发布..)。否则,它会在关闭媒体内容选择器或内置 HTML 编辑器时去除基本域。

2) 下一个问题是内容创建者不想乱用 HTML,所以我需要媒体选择器在选择图片时自动拥有基本域。我在 insertImage.js 中对它进行了硬编码:

        if (src.substring(0, umbracoPath.length) == umbracoPath) {
            // if the path contains a reference to the umbraco path, it also contains a reference to go up one level (../)
            src = src.substring(umbracoPath.length + 3, src.length);
        }

        var formObj = document.forms[0];
        formObj.src.value = 'https://example.com' + src;

这会修复所有问题,直到发布和保存。基本上,在这个框架的丛林健身房的某个地方,如果适用,它会抓取当前域和子域,如果该域在富内容编辑器框中(例如在链接或图像 href/src 中),它将......将其剥离.

在上面的 insertImage.js 代码中使用 https://www.example.com/ 解决此问题,并确保您仅通过 https://example.com 访问后台.

但是,这将不起作用,因为我将有一些内容创建者使用 www,而有些则不会。此外,即使我没有硬编码而是说如果 www 在当前域中而不是在 insertImage.js 中的 www(反之亦然),如果员工 A(使用 www)转到员工 B 的旧帖子,最终会导致问题做了(不使用 www)并重新保存 - 它会将其推回相对 URL。

我的问题是:我在哪里可以在 Umbraco 框架中查看直接编辑此问题的来源?

【问题讨论】:

    标签: javascript url tinymce umbraco


    【解决方案1】:

    另一种方法是使用解析器、正则表达式或子字符串方法。我也不必担心维护我对 Umbraco 框架所做的任何更改。

    在我为 RSS 提要调用此信息的那一刻,我只使用了一个简单的子字符串:

          var bt = node.GetProperty("bodyText").Value
                   .Replace("src=\"/","src=\"https://example.com/")
                   .Replace("href=\"/","href=\"https://example.com/");                                   
          @Html.Raw(bt);
    

    任何以正斜杠作为第一个字符的 src 和 href 属性都将被替换为基本域名。这非常适合我的设置,但如果您在博客文章中显示代码可能会导致问题。

    HTML Agility Pack pack 之类的解析器更好,但如果我能用 1 行新代码从技术上解决我的问题,我就不需要它。

    【讨论】:

      猜你喜欢
      • 2014-12-12
      • 2011-07-08
      • 2021-07-28
      • 2011-10-24
      • 2019-05-10
      • 1970-01-01
      • 2011-01-01
      • 1970-01-01
      相关资源
      最近更新 更多