innerHTML工作在IE和Firefox,但不是Chrome

innerHTML works in IE and Firefox, but not Chrome

本文关键字:Chrome Firefox 工作 IE innerHTML      更新时间:2023-09-26

数据将不会显示在Chrome,除非我打开一个IE选项卡在Chrome转到该网站,然后关闭它回到Chrome(对不起,如果这没有多大意义)。

window.onload = function() {
    var url = "http://----.freeiz.com/gbSales/sales.json";
    var request = new XMLHttpRequest();
    request.open("GET", url);
    request.onload = function () {
        if (request.status == 200) {
            updateSales(request.responseText);
        }
    };
    request.send(null);
}
function updateSales(responseText) { 
    var salesDiv = document.getElementById("sales");
    salesDiv.innerHTML = responseText;
}

我刚刚开始学习JavaScript,所以我真的不太了解它。

您应该使用一些现代Javascript库。它可以保护您避免浏览器之间的许多小差异。我喜欢jQuery。

因此,使用jquery,你的代码
window.onload = function() {
  var url = "http://----.freeiz.com/gbSales/sales.json";
  var request = new XMLHttpRequest();
  request.open("GET", url);
  request.onload = function () {
    if (request.status == 200) {
      updateSales(request.responseText);
    }
  };
  request.send(null);
}
function updateSales(responseText) { 
  var salesDiv = document.getElementById("sales");
  salesDiv.innerHTML = responseText;
}

$(document).load(function() {
  var url = "http://----.freeiz.com/gbSales/sales.json";
  $.get(url, {}, function(data) {
    $('#sales').html(data);
  });
});

更短,更干净,适用于所有浏览器!

我想你应该使用:

request.onreadystatechange = function() {

代替:

request.onload = function() {

改变检查返回值的方式。

查看异步请求代码示例:https://developer.mozilla.org/en/DOM/XMLHttpRequest/Using_XMLHttpRequest了解更多详细信息。

只是发现只有第一个表单标签被删除,所以你可以把一个空表单()和下一个是保留在代码中。