【问题标题】:Linkify.js.org (jQuery) HashTags: Change the default URL destination to Twitter?Linkify.js.org (jQuery) HashTags:将默认 URL 目标更改为 Twitter?
【发布时间】:2023-03-08 19:48:01
【问题描述】:

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

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

linkify jQuery DOM Data 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@address.com. 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


    【解决方案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 阅读更多内容

    【讨论】:

    • 感谢您的回答,但我花了数小时试验主题标签插件文档,当使用 data-linkify="this" 作为 div 属性时,似乎没有 linkify.options 代码设置兼容。如果你能提供一个完美的例子。我将继续在 jQuery 之外进行试验,如果找到解决方案,我将提供解决方案。我宁愿坚持使用 jQuery,我已经习惯了,纯 JavaScript 对我来说似乎很陌生。
    • 如果您设置了一个工作示例,我很乐意尽我所能提供帮助。
    • 我已经设置了一个JSFiddle,我只是复制并粘贴了 JS(jQuery 缩小。linkify.js、linkify-jquery.js 和 linkify-plugin-hashtag.js 非缩小) .我不是一个前端开发人员,所以可能有点混乱,我很抱歉?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-08
    • 2012-10-19
    • 1970-01-01
    • 2023-03-31
    • 2019-03-29
    • 1970-01-01
    • 2011-06-05
    相关资源
    最近更新 更多