【问题标题】:Replace existing canonical tag with javascript or jquery用 javascript 或 jquery 替换现有的规范标签
【发布时间】:2019-03-31 05:11:53
【问题描述】:

我想为 Adob​​e Muse 创建一个小部件,以替换 Muse 自动生成的规范标签。

我知道这不适用于大多数机器人,因为它们在抓取页面时不运行任何脚本,但我读到 Google 的机器人在抓取时确实运行脚本。

我发现了很多关于如何从链接中替换 href 的问题,但我似乎找不到任何关于替换规范标签的 href URL 的问题。我几乎肯定这是我开始的地方......我只是不知道如何完成它:

<script>
    $(document).ready(function() {
         $('link[rel=canonical]').attr('href' 'NEW_LINK');
    }
</script>

【问题讨论】:

  • 您到底想让脚本做什么?您是要完全替换 &lt;link&gt; 标记,还是要更改预先存在的 &lt;link&gt; 标记的 rel 属性,还是其他?
  • 我要替换href url
  • 我重读了你的问题;现在我明白你的要求了。在我打字的时候,Moogs 发布了一个可行的解决方案。见下文。

标签: javascript jquery html canonical-link


【解决方案1】:
$('link[rel="canonical"]').attr('href', 'NEW_HREF_GOES_HERE');

【讨论】:

  • 好的,所以这应该有效,对吧?
  • @JohnRPerry 有几个问题:在您的 if 语句中,您将 jquery 对象分配给规范变量。如果要比较使用三等号。另一个问题是您在 if 语句中设置 href 值。虽然这确实设置了它,但这是不好的做法,因为它在 if 语句中。我的问题是,你在比较什么?什么是规范变量?
  • 对不起,我的意思是摆脱 if 语句。所以我的意思是问这是否应该有效:
【解决方案2】:

对于那些喜欢香草 JS 的人:

const canonical = document.querySelector('link[rel="canonical"]');
if (canonical !== null) {
  canonical.href = 'NEW_HREF_GOES_HERE';
}

如果跨浏览器兼容性很重要,并且您没有使用转译器,请将const 更改为var

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-07
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 2020-03-04
    • 1970-01-01
    相关资源
    最近更新 更多