我参考了另一个相关讨论,这是那个讨论的链接:
外部HTML可以正常工作。但我的需求是内部HTML。不使用外部HTML的原因是我正在使用AngularJS,它对HTML本身有条件限制。因此,我需要将内容添加到innerHTML中。
这是HTML代码:
<p ng-show="preview=='text' && !file.showUploadPanel && file.fileContent!='null' && file.fileContent!='undefined'" ng-bind-html-unsafe="file.fileContent" class="pre fileContent"></p>
这里是支持它的JS代码。
var elem = $(".pre.fileContent")[1];
if (elem.tagName == "P" && "innerHTML" in elem){
elem.innerHTML = "<pre>" + elem.innerHTML + "</pre>";
}
我曾尝试将"<pre>" + elem.innerHTML + "</pre>"
替换为作用域变量,结果为"<pre>" + $scope.file.fileContent + "</pre>"
这是在IE8上出现的错误。
Error: Unknown runtime errorundefined
如果我从elem.innerHTML
中删除<pre>
,错误就不会发生。此外,在outerHTML
中,这个错误也不会出现。
我该如何解决这个问题?