You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何默认给编辑器所有链接添加target={_blank}属性?

解决Lexical编辑器链接强制新标签页打开的方法

要让所有链接默认以_blank打开,无需额外查找setTarget的API位置,通过自定义LinkNode或修改链接渲染逻辑即可实现,具体两种方案:

方案一:自定义LinkNode扩展默认行为

  1. 继承默认LinkNode,重写createDOM方法,生成a标签时强制添加target="_blank"和安全属性rel="noopener noreferrer":
import { LinkNode } from '@lexical/link';

class CustomLinkNode extends LinkNode {
  createDOM(config) {
    const dom = super.createDOM(config);
    dom.setAttribute('target', '_blank');
    dom.setAttribute('rel', 'noopener noreferrer');
    return dom;
  }
}
  1. 编辑器初始化时,注册自定义节点替换默认LinkNode:
const initialConfig = {
  nodes: [CustomLinkNode],
  // 其他编辑器配置...
};

方案二:修改链接创建/编辑逻辑

如果使用官方LinkPlugin,在处理链接提交时可直接调用LinkNode内置的setTarget方法:

import { $createLinkNode } from '@lexical/link';

// 处理链接提交的函数示例
const handleLinkSubmit = (url) => {
  const linkNode = $createLinkNode(url);
  linkNode.setTarget('_blank');
  // 后续插入或更新节点的逻辑...
};

LinkNode本身内置setTarget方法,无需额外添加属性。若要让所有已有、新建链接都生效,方案一的自定义节点方式更彻底。

内容的提问来源于stack exchange,提问作者gikall

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 12:07:02