【问题标题】:How to get current html page title with javascript如何使用 javascript 获取当前的 html 页面标题
【发布时间】:2012-03-02 23:47:18
【问题描述】:

我正在尝试使用 javascript 获取纯 html 页面标题。

我使用 Firefox 和

document.title 

我在标题末尾多了一个“- Mozilla Firefox”。我知道通过修改字符串很容易摆脱这种情况,但是如果他们更改文本、使用不同的格式等或其他一些浏览器以不同方式修改它,我又会有额外的文本。

那么,是否有任何跨浏览器的方式来使用 javascript 获取纯标记内容? jquery的解决方案还可以。

【问题讨论】:

  • 在谷歌浏览器中没有问题。您确定 标签的内容不包含“-Mozilla Firefox”吗?
  • 我没有在任何带有 document.title 的浏览器中获取供应商名称,除非它包含在标题标签之间。
  • 不要为此使用 JQUERY! document.title 是正确的方法,'mozilla firefox' 肯定不会在那个值中 - 永远!
  • @mikkom 这也是 Ubuntu,FF 10,我从未见过 " - Mozilla Firefox"document.title 的标题后加上前缀,甚至在早期版本的 FF 中也没有。
  • @Zenexer 与库的负载无关。它是关于将 jquery 用于某些东西的,而 javascript 是为此“设计的”。 Jquery 很棒,但在这种情况下,它只是增加了大量的 CPU 周期

标签: javascript title


【解决方案1】:

直接来自 DOM 的一个选项:

$(document).find("title").text();

仅在 chrome 和 IE9 上测试,但逻辑上应该适用于所有浏览器。

或者更通用的

var title = document.getElementsByTagName("title")[0].innerHTML;

【讨论】:

  • 不要使用 jquery 来解决这种琐碎的问题。
  • 在标准 JS 中添加了相同的解决方案
  • @munchschair 因为document.getElementsByTagName() 返回一个元素数组,[0] 选择该数组中的第一个元素。
  • @comfytoday 我同意默认为document.title。但是这个问题明确地针对document.title返回不需要的结果(例如额外字符)的情况,并且提出问题的人不想解析返回的标题。
【解决方案2】:

这样试试

$('title').text();

【讨论】:

  • 已经试过了。不起作用(由于某种原因返回空字符串)。
  • @mikkom:你的<title><head> 中吗?您当时是否在任何其他版本的 Firefox 上尝试过? HTML 验证了吗?
【解决方案3】:

像这样:

jQuery(document).ready(function () {
    var title = jQuery(this).attr('title');
});

适用于 IE、Firefox 和 Chrome。

【讨论】:

    【解决方案4】:
    $('title').text();
    

    返回所有标题

    但如果您只想要页面标题,请使用

    document.title
    

    【讨论】:

      猜你喜欢
      • 2010-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-04
      • 2013-11-24
      • 2017-06-25
      相关资源
      最近更新 更多