用锚点标记点击更改页面标题

时间:2016-01-28 03:22:16

标签: javascript jquery html

使用Javascript,如何在单击特定锚标记时更改页面标题。

<a href="index.html" title="Home">Home</a>
<a href="about.html" title="About Us">About Us</a>

可能类似于锚标签中的title =“”。另外,如果可能的话,你能否拥有它支持历史记录,这样如果按下后退或前进按钮,它就会变回原来的状态。

感谢任何帮助或建议。

修订版:我有另一个动态更改页面的插件,因此单击上述语句中的链接实际上不会更改标题中的任何内容。

3 个答案:

答案 0 :(得分:2)

您提供的当前HTML代码实际上会在点击后将用户带到其他页面。因此,根据index.htmlabout.html的标题属性,它可能具有与当前页面不同的标题。

如果您不希望页面重新加载并在历史记录中添加条目,则可以执行以下操作:

$('a').click(function(e) {
    $('title').text($(this).attr('title'));
    history.pushState({}, '', $(this).attr('href'));
    e.preventDefault();
});

您可以在此处详细了解.pushState(...) API:https://developer.mozilla.org/en-US/docs/Web/API/History_API

答案 1 :(得分:1)

查看History.pushState()方法:https://developer.mozilla.org/en-US/docs/Web/API/History/pushState

您可以使用它将新状态推送到浏览器历史记录,如下所示:

var state = { 'page_id': 1, 'user_id': 5 };
var title = 'Hello World';
var url = 'hello-world.html';

history.pushState(state, title, url);

这应该更改标题和网址,并允许您使用浏览器后退和转发功能

要使用此功能而不需要任何外部库(如jQuery),您可以将其添加到链接的onclick,例如:

<a href="index.html" title="Home" onclick="history.pushState({}, 'Home Page Title', 'home.html')">Home</a>

答案 2 :(得分:0)

<html>
<head>
    <title>sample Page</title>
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>

<script>

       $(document).ready(function () {
            $("a").click(function (e) {
                e.preventDefault()
                $('title').text($(this).attr('title'));
                window.pushState({}, '', 'about.html');
                e.preventDefault();
            });
        });


</script>
</head>
<body>
<a  href="index.html" title="Home">Home</a>
<a href="about.html" title="About Us">About Us</a>

</body>
</html>