【问题标题】:Page keeps on loading on XML request on JS, after cookies check在 cookie 检查后,页面继续加载 JS 中的 XML 请求
【发布时间】:2021-12-04 14:50:52
【问题描述】:

我是 JS 新手,因此我们将不胜感激。 我在加载视频的页面上创建了一个 XML 请求以检查 cookie,然后用我网站中的外部 HTML 文件替换 div 元素“tmx”。但是,在将 XML 请求注入“#tmx”之后,页面会在获取 XML 请求后继续重新加载。 我注意到的另一件事是,当我在未选中复选框的情况下按下文档上的接受 tnc 按钮时,整个页面正在完全重新加载。 我认为可能是返回值错误。

 function setCookie(cname, cvalue, exdays) {
  if(document.getElementById('agree').checked){
 const d = new Date();
 d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
 let expires = "expires="+d.toUTCString();
 document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
 }
}

function getCookie(cname) {
  var name = cname + "=";
 var ca = document.cookie.split(';');
 for(var i=0; i<ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1);
    if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
 }
 return "";
 }

 function checkCookieOnLoad() {
 if(getCookie("clicklink") === "yes") {
 


   var elem = document.getElementById("tmx");
                elem.parentNode.removeChild(elem);

                // var elem2 = document.getElementById("ooo");
                // elem2.parentNode.removeChild(elem2);


            var video = document.createElement('video');
            video.type = "video/mp4";
            video.src = ".//vid1.mp4";
            video.autoplay = true;
            video.muted = true;
            video.id = "vdd1"
            document.body.appendChild(video);

            
            video.addEventListener("timeupdate", function(){
            // current time is given in seconds

                            if(this.currentTime >= 4.8) {
                                // pause the playback
                                this.pause();
                                this.remove();
                                
                                location.replace("https://www.test.com/index.html");
                                }

            });

   return true;

  
 
   } else {
 
    const xhr = new XMLHttpRequest();
          const contianer = document.getElementById('tmx');
          xhr.onload = function() {
            if (this.status ===200){
              contianer.innerHTML = xhr.responseText;
            }
          }
          xhr.open('get', 'tnc.html');
          xhr.send();
 
 
   }
  }

【问题讨论】:

    标签: javascript html cookies xmlhttprequest dynamic-programming


    【解决方案1】:

    setTimeout(function() {
      function setCookie(cname, cvalue, exdays) {
        if (document.getElementById('agree').checked) {
          const d = new Date();
          d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
          let expires = "expires=" + d.toUTCString();
          document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
        }
      }
    
      function getCookie(cname) {
        var name = cname + "=";
        var ca = document.cookie.split(';');
        for (var i = 0; i < ca.length; i++) {
          var c = ca[i];
          while (c.charAt(0) == ' ') c = c.substring(1);
          if (c.indexOf(name) == 0) return c.substring(name.length, c.length);
        }
        return "";
      }
    
      function checkCookieOnLoad() {
        if (getCookie("clicklink") === "yes") {
    
    
    
          var elem = document.getElementById("tmx");
          elem.parentNode.removeChild(elem);
    
          // var elem2 = document.getElementById("ooo");
          // elem2.parentNode.removeChild(elem2);
    
    
          var video = document.createElement('video');
          video.type = "video/mp4";
          video.src = ".//vid1.mp4";
          video.autoplay = true;
          video.muted = true;
          video.id = "vdd1"
          document.body.appendChild(video);
    
    
          video.addEventListener("timeupdate", function() {
            // current time is given in seconds
    
            if (this.currentTime >= 4.8) {
              // pause the playback
              this.pause();
              this.remove();
    
              location.replace("https://www.test.com/index.html");
            }
    
          });
    
          return true;
    
    
    
        } else {
    
          const xhr = new XMLHttpRequest();
          const contianer = document.getElementById('tmx');
          xhr.onload = function() {
            if (this.status === 200) {
              contianer.innerHTML = xhr.responseText;
            }
          }
          xhr.open('get', 'tnc.html');
          xhr.send();
    
    
        }
      }
    }, 5000);
    /*This code will run after 5 seconds after the loading of HTML CSS and your JS files. Try it. Hope it helps you!!*/ 

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-06
      • 2018-08-20
      相关资源
      最近更新 更多