如果启用了 JavaScript,我将使用 Ajax 来调用特殊文件;如果禁用了 JavaScript,则会加载常规文件。
我的代码是这样的:
window.onload = function() {
document
.getElementById("wrapper")
.innerHTML = "<img src='cdn/img/demo/loading.gif'>";
var x = null;
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
var x = new XMLHttpRequest();
} else if (window.ActiveXObject) {
// code for IE6, IE5
var x = new ActiveXObject('MSXML2.XMLHTTP.3.0');
} else {
// @TODO - Fallback
// My Question : What should be an ideal Fallback method here?
}
x.open("GET", "js_enabled.php", true);
x.send("");
x.onreadystatechange = function() {
if (x.readyState == 4) {
if (x.status == 200)
document.getElementById("wrapper").innerHTML = x.responseText;
else
document.getElementById("wrapper").innerHTML = "Error loading document";
}
}
}
第一个 block 中理想的后备方法应该是什么?
更新: 后备方案是针对浏览器的。如您所见,这些命令适用于 IE 和普通浏览器。我想知道如果上帝禁止某些浏览器不理解这两个命令的 ant 那么怎么办?
最佳答案
如果 JS 可用,AJAX 极有可能可用,所以这不是您需要经常处理的事情,但如果您正在寻找 AJAX 不可用时的后备(我猜您是这样的)来自您的代码示例),那么唯一真正的方法就是确保您的页面在没有它的情况下也能正常工作。
链接应该指向适当的页面(或者只是重新加载当前页面),然后用 JS 覆盖以使用 AJAX(但前提是 AJAX 可用)。这样,即使 JS 不可用,您也将拥有一个正常运行的网站,更不用说 AJAX 不可用了。
根据this site,让您了解缺乏 AJAX 支持时问题有多么小。支持 AJAX 的浏览器包括:
- Internet Explorer 5.0 及更高版本
- Opera 7.6 及更高版本
- Netscape 7.1 及更高版本
- Firefox 1.0 及更高版本
- Safari 1.2
如您所见,这是一些非常古老的东西。
关于javascript - 理想的后备方法应该是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18097774/