我们在网站上使用的是AngularJS 1.2,只有一小部分被AMP'ed。
我使用JS将AMP发现标签添加到HTML部分。
<script>
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
jsonResponse = JSON.parse(this.responseText);
var sc = document.createElement("link");
sc.setAttribute("href", jsonResponse.amp);
sc.setAttribute("rel", "amphtml");
document.head.appendChild(sc);
}
};
var url = "https://webfast.co/amp-checker";
xhttp.open("POST", url, true);
xhttp.setRequestHeader("Content-type", "application/json");
xhttp.send(JSON.stringify({ "hostname": window.location.hostname, "url": window.location.href }));
console.log("request:",url);
</script>
基本上,我们正在对服务器进行AJAX调用,如果服务器返回了现有的AMP页面,则我们使用JS添加标签。 示例:https://www.dev.toylibrary.co/
AMPValidator Chrome扩展程序能够从规范页面中发现AMP链接,但是,https://search.google.com/test/amp?utm_source=gws&utm_medium=onebox&utm_campaign=suit&id=tpaqAiB5NUXFYCA7jQcNRQ表示“ URL既不是AMP页面,也不链接到AMP页面。”
以上内容还暗示Google无法检测到AMP页面,因此不会在搜索结果中显示该页面。
我的问题: 1.知道为什么会这样吗? AMP验证程序是否无法发现页面,因为我正在使用javascript并进行DOM操作?
谢谢。