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

问题描述 投票:0回答:2

我正在清理来自各种第三方 XML 源的 CDATA 内容,剥离所有 HTML 服务器端并使用 Linkify.js.org (v3.0.3) 安全地将 HTML 标签重新应用到清理后的纯文本链接客户端。

我的项目很大程度上依赖于jQuery (v3.6.0)

linkify jQuery DOM 数据 API 在链接和电子邮件地址方面效果很好,但主题标签却存在问题。默认情况下,主题标签重定向到 https://my-domain.com/current-dir/#<HashTag>

,但我希望它们重定向到 
https://twitter.com/hashtag/<HashTag>
。我从演示示例中知道这是可能的,但我想坚持使用 jQuery 解决方案,并在可能的情况下维护 div 数据属性。

我已阅读

Linkify.js.org/docs/ 中的文档,但不知道如何在不删除 jQuery div 数据属性的情况下更改主题标签 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
 插件的行为?

javascript jquery dom custom-data-attribute linkify
2个回答
1
投票
使用主题标签插件选项...并且由于您不想直接调用 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 阅读更多内容


0
投票
将以下代码添加到您的 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 一起使用。

© www.soinside.com 2019 - 2024. All rights reserved.