【发布时间】: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