将AMP发现标签添加到AngularJS页面

时间:2018-08-03 20:46:46

标签: javascript angularjs accelerated-mobile-page

我们在网站上使用的是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操作?

  1. 其他人是否遇到过类似的问题,其中仅部分网站已被AMP'化? 如果是,那么当您的AngularJS网站中只有一部分具有AMP页面时,您如何进行修复?

谢谢。

0 个答案:

没有答案