【发布时间】:2026-02-15 18:35:01
【问题描述】:
基本上我需要将target="_blank" 属性添加到wagtail 中插入的所有外部URL Draftail richtext 编辑器:
In [2]: wagtail.__version__
Out[2]: '2.0.1'
EDIT-1:这不是重复的。 wagtail 版本 2 使用完全不同的 richtext 编辑器。
提议的answer 建议$('a[href^="http://"]').attr('target', '_blank') 将适当的属性添加到包含http:// 的页面上的所有链接。这是非常不理想的解决方案,因为页面上可能有更多不需要这种处理的链接。显然必须有更充分的修复,尤其是因为wagtail 已经区分了编辑器 UI 上的Internal 和External 链接(见附图)。
EDIT-2:
似乎在wagtail.core.rich_text.feature_registry.FeatureRegistry 类中有一个方法,据我所知,它为不同的 URL 类型分配了不同的处理程序,但是我不知道这些处理程序是什么,它们是如何被调用的或如何修改它们?
def register_link_type(self, link_type, handler):
self.link_types[link_type] = handler
【问题讨论】:
-
这不是重复的,因为 wagtail 版本 2 使用完全不同的富文本编辑器。
-
你真的看过那里的答案吗?该解决方案完全独立于后端编辑器。
-
这是重复的。富文本编辑器发生了变化,但链接选择器没有变化,服务器端处理也大体相同。
-
@ThibaudColas 正如我在 Edit-1 中解释的那样,建议的答案只不过是
JavaScripthack。你可以用大量的 JavaScript 来掩盖几十个框架问题,但这并不能解决核心问题。您提到了server-side processing is also mostly the same(因此您同意它不同,但有点相似),所以我假设您对wagtail内部了解很多?为什么不发布正确的答案?这个问题必须在框架的内部解决(wagtail),而不是被JavaScript掩盖。
标签: django python-3.x wagtail richtext