gpt4 book ai didi

javascript - 将 jquery ajax 转换为标准的 javascript

转载 作者:行者123 更新时间:2023-11-30 09:04:28 25 4
gpt4 key购买 nike

Jquery 非常笨重和臃肿。不幸的是,我不知道如何编写“真正的”javascript。

我有这个代码:

$(document).ready(function () {
if(window.navigator.standalone){
$('a').click(function(e) {
e.preventDefault();
$("body").load(this.href);
});
}
});

有人可以帮助我将其转换为真正的 javascript 吗?我将如何替换 load()?非常感谢:)

最佳答案

不是特别复杂:

window.onload= function() {
if (!navigator.standalone) return;
for (var i= document.links.length; i-->0;) {
document.links[i].onclick= function() {
var req= new XMLHttpRequest();
req.onreadystatechange= function() {
if (this.readyState!==4) return;
document.body.innerHTML= this.responseText;
};
req.open('GET', this.href, true);
req.send();
return false;
};
}
};

要让 XMLHttpRequest 在 IE6 上工作,如果你关心这个问题,你需要先定义它:

if (!window.XMLHttpRequest && 'ActiveXObject' in window) {
window.XMLHttpRequest= function() {
return new ActiveXObject('MSXML2.XMLHttp');
};
}

这就是它的全部内容。

但是对于通用网页,你永远不应该这样做;不在 native JavaScript 中,也不在 jQuery 中。 load 将内容加载到现有页面会破坏浏览器的导航能力,并用任何东西代替它们。后退和前进按钮现在不再起作用。用户不能为他们最喜欢的页面添加书签,也不能将链接发送给其他任何人。这是对框架最糟糕的可用性问题的重新发明,如果没有大量额外的工作来为搜索引擎实现 HTML5 历史导航和 hashbang 回退导航,就不应该在开放网络上完成。

关于javascript - 将 jquery ajax 转换为标准的 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6348830/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com