Получение канонического URL с использованием JavaScript

Я создаю сайт внутри, а страница имеет canonical URL-адрес, указанный в <head>, который указывает URL-адрес страницы извне,

Можно ли использовать JavaScript для получения канонического URL?

Ответ 1

Что-то вроде этого?

<!DOCTYPE html>
<html>
    <head>
        <link href="http://www.example.com/" rel="canonical" />
        <title>Canonical</title>
        <script type="text/javascript">
            window.onload = function () {
                var canonical = "";
                var links = document.getElementsByTagName("link");
                for (var i = 0; i < links.length; i ++) {
                    if (links[i].getAttribute("rel") === "canonical") {
                        canonical = links[i].getAttribute("href")
                    }
                }
                alert(canonical);
            };
        </script>
    </head>
    <body>
        <h1>Canonical</h1>
    </body>
</html>

Ответ 2

Хорошо, теперь вы можете просто использовать:

document.querySelector("link[rel='canonical']").getAttribute("href");

Вышеуказанный ответ даст вам истинное значение атрибута href. Поэтому он покажет вам href как /query.html, если у вас нет полного URL-адреса.

Но метод .href даст вам всегда полный URL-адрес с доменом, например http://example.com/query.html:

document.querySelector("link[rel='canonical']").href;

Ответ 3

версия jquery;

$("link[rel='canonical']").attr("href")