innerHTML 适用于 IE 和 Firefox,但不适用于 Chrome
Posted
技术标签:
【中文标题】innerHTML 适用于 IE 和 Firefox,但不适用于 Chrome【英文标题】:innerHTML works in IE and Firefox, but not Chrome 【发布时间】:2012-01-27 02:55:26 【问题描述】:数据不会显示在 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,所以我真的不太了解它。
【问题讨论】:
【参考方案1】:您应该使用一些现代的 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);
);
);
更短、更简洁,适用于所有浏览器!
【讨论】:
顺便说一句,如果一个问题对你有用,你应该接受它(左边那个复选标记)【参考方案2】:我想你想用:
request.onreadystatechange = function()
代替:
request.onload = function()
并更改检查返回值的方式。
请参阅此处的异步请求代码示例:https://developer.mozilla.org/en/DOM/XMLHttpRequest/Using_XMLHttpRequest 了解更多详情。
【讨论】:
【参考方案3】:只发现只有第一个form标签被去掉,所以可以放一个空的form(),下一个保留在代码中。
【讨论】:
以上是关于innerHTML 适用于 IE 和 Firefox,但不适用于 Chrome的主要内容,如果未能解决你的问题,请参考以下文章
Javascript innerHTML 不适用于图像,但适用于文本?
for 循环适用于console.log 但不是innerHTML?