document.getElementById('AnyName').innerHTML = content 不适用于 IE 或 Safari,但适用于 Chrome 和 Firefox

Kob*_*zer 0 javascript safari internet-explorer innerhtml

忙着建一个网站,在用户做了几个选择后,绘制了图表。我正在使用 javascript 替换 div 的内部 HTML 以执行不同的步骤,更具体地说,如下所示:

document.getElementById('AnyName').innerHTML = content;
Run Code Online (Sandbox Code Playgroud)

这适用于 Chrome 和 Firefox,但不适用于 Safari 或 IE。

目前内容或多或少的定义如下,只是一个例子:

var content = (function () {/*
    <div class="selectNavbar">
    Some HTML and other stuff here
    </div>
*/}).toString().match(/[^]*\/\*([^]*)\*\/\}$/)[1];
Run Code Online (Sandbox Code Playgroud)

我尝试用 value/textContent 替换 innerHTML,因为我看到有些人在使用 Safari 时遇到问题,这似乎解决了它,但页面仍然无法在新的 HTML 中加载。

我也使用过w3 验证器,但似乎只有我使用了草率样式,我认为这不是问题所在。

提前致谢。如果有人需要,我可以链接所有代码,但可以在上面提到的链接中查看源代码。

Mad*_*han 5

我建议你先看这个 innerText vsinnerHtml vs label vs text vs textContent vs outerText

我不知道你当初为什么innerHTML要去。我已经看到了您页面的 javascript,看来您所做的只是更新文本值。

innerHTML用于向/从另一个元素放置/获取元素
您可以使用innerTexttextContent将解决您的问题的方法 textContent仅适用于 IE11,因此最好使用innerText

或做类似的事情

var divElement=document.getElementById('id');
var value=document.getElementById('someotherid');
if(divElement.textContent)
  divElement.textContent=value;
else 
  divElement.innerText=value;
Run Code Online (Sandbox Code Playgroud)