Linkify.js.org(jQuery)HashTags:将默认URL目标更改为Twitter?

bq9c1y66  于 2023-11-17  发布在  jQuery
关注(0)|答案(2)|浏览(143)

我正在清理来自各种第三方XML提要的CDATA内容,剥离所有HTML服务器端,并使用Linkify.js.org (v3.0.3)安全地将HTML标记重新应用于清理后的明文链接客户端。
我的项目很大程度上依赖于jQuery (v3.6.0)
linkify jQuery DOM Data API在链接和电子邮件地址上工作得很好,但是hashtags被证明是有问题的。默认情况下,hashtags重定向到https://my-domain.com/current-dir/#<HashTag>,但是我希望它们重定向到https://twitter.com/hashtag/<HashTag>。我从演示示例中知道这是可能的,但是我想坚持使用jQuery解决方案,并且如果可能的话维护div数据属性。
我已经阅读了Linkify.js.org/docs/的文档,但不知道如何在不删除jQuery div数据属性的情况下更改hashtag URL。
下面是一个简单的例子(我维护一个_blank HREF目标很重要):

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Linkify</title>
</head>
<body>
<div data-linkify="this" data-linkify-target="_blank">
  Domain Test: domain.com. Email Test: [email protected]. HashTag Test: #Linkify.
</div>
<script src="/js/jquery.min.js"></script> 
<script src="/js/linkify.min.js"></script> 
<script src="/js/linkify-jquery.min.js"></script> 
<script src="/js/linkify-plugin-hashtag.min.js"></script>
</body>
</html>

字符串
工作的伟大,但如前所述,#Linkify重定向到同一页面(例如; https://my-domain.com/current-dir/#Linkify)。
客户端JS不是我的强项,但是有没有一个data-linkify属性可以用来将HashTag的目标更改为Twitter?或者有没有额外的jQuery代码可以用来修改linkify-plugin-hashtag.min.js插件的行为?

ha5z0ras

ha5z0ras1#

使用hashtag插件选项.既然你不想直接调用linkify,你需要使用默认选项。
如果你加上这个,它应该工作。

linkify.options.defaults.formatHref.hashtag= (href) => 
    'https://twitter.com/hashtag/' + href.substr(1);

字符串
您可以在https://linkify.js.org/docs/plugin-hashtag.htmlhttps://linkify.js.org/docs/options.html上阅读更多内容

g6ll5ycj

g6ll5ycj2#

将以下代码添加到HTML中的<script src="/js/linkify-plugin-hashtag.min.js"></script>之后:

<script>
linkify.options.defaults.formatHref = (href, type) =>
    type === 'hashtag' ? 'https://twitter.com/hashtag/' + href.substr(1) : href
</script>

字符串
这是对@Salketer代码的修改,应该可以在最新版本的Linkify中使用。

相关问题