innerHTML适用于IE和Firefox,但不适用于Chrome

时间:2011-12-23 22:44:19

标签: javascript google-chrome innerhtml

数据不会显示在Chrome中,除非我在Chrome中打开IE标签转到该网站然后将其关闭回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,所以我真的不太了解它。

3 个答案:

答案 0 :(得分:8)

你应该使用一些现代的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);
  });
});

更短,更清洁,适用于所有浏览器!

答案 1 :(得分:0)

我想你想用:

request.onreadystatechange = function() {

而不是:

request.onload = function() {

并更改检查返回值的方式。

有关详细信息,请参阅此处的异步请求代码示例:https://developer.mozilla.org/en/DOM/XMLHttpRequest/Using_XMLHttpRequest

答案 2 :(得分:0)

只是发现只删除了第一个表单标记,因此您可以放置​​一个空表单(),然后保留下一个表单。