Jquery非常沉重和臃肿。不幸的是我不知道如何编写“真正的”javascript代码。
我有这段代码:
$(document).ready(function () {
if(window.navigator.standalone){
$('a').click(function(e) {
e.preventDefault();
$("body").load(this.href);
});
}
});
有人可以帮助我将其转换为真正的javascript吗? 我将如何替换load()?非常感谢:)
答案 0 :(得分:3)
不是非常复杂:
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');
};
}
这就是它的全部内容。
但是对于通用网页,你永远不应该这样做;不是在本机JavaScript中而是在jQuery中。将load
内容嵌入到现有页面中会颠覆浏览器的导航功能,并将其替换为空。后退和前进按钮现在不再起作用了。用户无法为自己喜欢的页面添加书签,也无法向其他人发送链接。这是对帧的最差可用性问题的重新发明,不应该在开放的网络上完成,而不需要为搜索引擎实现HTML5历史导航和hashbang后备导航而进行大量额外工作。
答案 1 :(得分:2)
不是jQuery 真正的javascript 吗?如果你的意思是没有任何框架的原始javascript,那么你需要一个XmlHttpRequest(准备自己编写大量的代码,也准备好自己的代码在不同的浏览器之间不相同,得到错误,头痛等......) 。
结论:使用jQuery并感到高兴。