自动将文章中的链接转为超链接

最近在做一个论坛系统,使用了一下代码作为正文展示:

代码语言:javascript
复制
<div class="article-content">
    <?php echo $article['content']; ?>
</div>

这里用到的样式是“article-content”所以我直接在JS中对这个元素进行处理即可:

代码语言:javascript
复制
<script>
// 等待页面加载完成后执行
document.addEventListener("DOMContentLoaded", function() {
  // 获取文章内容元素
  var articleContent = document.querySelector(".article-content");

  // 正则表达式匹配链接的模式(排除已经是链接的内容和图片链接)
  var linkRegex = /(?<!<a\s[^>]*?)(?<!<img\s[^>]*?)(https?:\/\/\S+)/g;

  // 查找文章内容中的段落元素并替换链接
  var paragraphs = articleContent.getElementsByTagName("p");
  for (var i = 0; i < paragraphs.length; i++) {
    var paragraph = paragraphs[i];
    var paragraphHTML = paragraph.innerHTML;

    var replacedHTML = paragraphHTML.replace(linkRegex, function(match) {
      return '<a href="'%20+ match + '" target="_blank">'%20+ match + '</a>';
    });

    if (replacedHTML !== paragraphHTML) {
      paragraph.innerHTML = replacedHTML;
    }
  }
});
</script>
自动将文章中的链接转为超链接

以上代码设置后发现链接好像并不会把文章中所有链接都转成超链接,另外如果是img图片,链接也可能会显示不正常,下面是我修改后的最终代码:

代码语言:javascript
复制
<script>
// 等待页面加载完成后执行
document.addEventListener("DOMContentLoaded", function() {
  // 获取文章内容元素
  var articleContent = document.querySelector(".article-content");

  // 正则表达式匹配链接的模式(排除图片链接)
  var linkRegex = /(?<!<img\s[^>]*?)(https?:\/\/\S+)/g;

  // 查找文章内容中的段落元素并替换链接
  var paragraphs = articleContent.getElementsByTagName("p");
  for (var i = 0; i < paragraphs.length; i++) {
    var paragraph = paragraphs[i];
    var paragraphHTML = paragraph.innerHTML;

    var replacedHTML = paragraphHTML.replace(linkRegex, function(match) {
      return '<a href="'%20+ match + '" target="_blank">'%20+ match + '</a>';
    });

    if (replacedHTML !== paragraphHTML) {
      paragraph.innerHTML = replacedHTML;
    }
  }
});
</script>

效果:

自动将文章中的链接转为超链接

关于自动将文章中的链接转为超链接的相关内容;如有侵权,请联系老文删除。

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
老文的头像老文
上一篇 2024年7月31日 上午11:37
下一篇 2024年7月31日 上午11:50

相关推荐

  • WordPress程序SEO优化方法

    WordPress是一款对搜索引擎非常友好的程序,用这款程序,只要内容不存在问题,就不用担心网站收录的问题。 下面主要介绍使用这款程序时要进行的一些操作。 第一步:添加SEO插件 推荐插件:platinum-seo-pack,可以通过百度搜索获得最新版本的下载地址以及相关指南。下载后,解压,把文件通过FTP上传到 /wp-content/plugins/ 这…

    2022年5月13日 建站知识
    310
  • WordPress“正在执行例行维护,请一分钟后回来”解决方法

    在WordPress 3.X的版本当中,加入了升级维护的显示功能。例如WordPress网站正在升级或者安装、升级插件的时候,访问首页将会显示“正在执行例行维护,请一分钟后回来。”如果一切顺利,这个显示将会过一段时间后消失变为正常的首页。但也有例外,有时候即使是安装成功了,这个提示也会一直存在。 解决方法: 请先通过FTP进入WordPress网站根目录,看…

    2021年8月12日
    430
  • WordPress 纯代码实现页面锚文本链接(免插件)

    WordPress 纯代码实现页面锚文本链接 WordPress 实现页面锚文本链接的方法很多,由于装插件比较繁琐,所以这里老文笔记介绍一个WordPress 纯代码实现页面锚文本链接方法,在网站主题目录找到该文件 functions.php,具体路径:网站根目录:wp-content/themes/主题目录/ functions.php //自动TAG转内…

    2021年10月8日
    424
  • WordPress不可忽视的面包屑导航SEO优化技巧

    什么是网站面包屑导航?面包屑导航意在告知用户所处的当前网页的位置,方便用户可以通过该导航快速返回上一级网页。面包屑导航一般都在导航的下面,形式一般为 首页 > 一级目录名称 > 二级目录名称 > 目前位置,尽量要把面包屑导航的层次控制在四层以内,这样也有利与搜索引擎蜘蛛一层层往下爬,到了四层以下就很难爬到了。 面包屑导航的作用 让用户了解目…

    2021年9月4日
    568
  • WordPress解决文章ID不连续的问题

    WordPress文章ID不连续题是一个很正常的现象,不是你的博客出了问题,而是WordPress系统默认的,不用在意忽略它。 但是对于有着轻微强迫症,追求完美的朋友来说,这的确很让人讨厌。 在WordPress后台并没有直接的提供关闭这个功能的选项,那么该如何解决文章ID不连续的问题呢?今天就比格给大家讲讲如何把这个功能完完全全的隐蔽掉。 找到当前主题目录…

    2021年11月2日
    385