2

如果启用了 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";
        }
      }
    }

第一个块中理想的后备方法应该是什么?

更新: 后备是针对浏览器的。如您所见,这些命令适用于 IE 和普通浏览器。我想知道上帝是否禁止某些浏览器不理解这两个命令的蚂蚁,那又如何呢?

4

2 回答 2

4

如果 JS 可用,AJAX 极有可能可用,所以这不是你必须经常处理的事情,但如果你正在寻找 AJAX 不可用时的后备(我猜你来自你的代码示例),那么唯一真正的方法是确保您的页面没有它也能正常工作。

链接应该指向适当的页面(或只是重新加载当前页面),然后用 JS 覆盖以使用 AJAX(但仅当 AJAX 可用时)。这样,即使 JS 不可用,您也将拥有一个正常运行的站点,更不用说 AJAX 不可用了。

为了让您了解在缺乏 AJAX 支持时问题有多小,根据本网站,支持 AJAX 的浏览器包括以下内容:

  • Internet Explorer 5.0 及更高版本
  • Opera 7.6 及更高版本
  • 网景 7.1 及更高版本
  • 火狐 1.0 及更高版本
  • 野生动物园 1.2

如您所见,这是一些非常古老的东西。

于 2013-08-07T08:04:42.140 回答
0

如果禁用了javascript,您会感到困惑,那么将没有回退方法。假设您的意思是启用/禁用 javascript。

然后你要做的是用默认文本填充该区域并使用 js 隐藏它。
因此,如果未启用 JS,则默认文本将显示给用户。
如果启用了 js,默认文本将在渲染后立即隐藏,然后您的 ajax 将接管

于 2013-08-07T08:04:29.150 回答