如果启用了JavaScript,我正在使用Ajax调用特殊文件,如果禁用它,则会加载常规文件。
我的代码是这样的:
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";
}
}
}
第一个块中理想的Fallback方法应该是什么?
更新 回退适用于浏览器。如您所见,这些命令适用于IE和普通浏览器。我想知道上帝是否禁止某些浏览器不理解那些2命令的蚂蚁呢?
答案 0 :(得分:4)
链接应该指向适当的页面(或者只是重新加载当前页面),然后用JS覆盖以使用AJAX(但仅当AJAX可用时)。这样,即使JS不可用,你也会有一个正常运行的网站,更不用说AJAX了。
根据包含AJAX支持的this site浏览器,为了让您了解在缺乏AJAX支持时问题有多小,包括以下内容:
正如你所看到的,那是一些非常古老的东西。
答案 1 :(得分:0)
然后你要做的就是用默认文本填充区域并用js隐藏它。
所以如果JS没有启用,默认文本将显示给用户。
如果启用了js,默认文本几乎会在渲染后立即隐藏,然后你的ajax将会接管