【发布时间】:2012-09-07 18:00:22
【问题描述】:
我将一个字符串传递给一个表,其中一些类在字符串 (img) 中包含 html 标记。在转换后使用 innerHTML 附加此表后,在 chrome 和 FF 中效果很好,但在 IE 中效果不佳。
下面的代码看起来像这样:
var dfd = $.Deferred();
var requestParams = {};
templatingIsDone = jsonRequest(ResolveUrl("~/Results/ResultsService.asmx/GetMostRecentUploadsService"), requestParams).success(function (data) {
if (data.Success == true) {
var jheaderResults = $("#jobheaderResults tbody"); //HTML Markup
try {
jheaderResults.empty();
var results = data.Results;
$.tmpl("jobHeaderTemplate", data.Results).appendTo(jheaderResults);
var allCaterLinks = $(".CaterRequestLinking");
$.each(allCaterLinks, function (index, value) {
if ($.browser.msie) {
value.innerHTML = value.innerText;
} else {
value.innerHTML = value.textContent;
}
});
$("#jobheaderResults tbody").trigger("update");
结果在“jobheaderResults”表中显示其在 Firefox 和 Chrome 中的图像。但是 IE 不呈现图像,而是显示 html 标记。如何将其转换为 HTML?
我也尝试了以下代码,但无济于事:
//value.innerHTML = value.empty().html(value.innerHTML);
//value.innerHTML = value.textContent;
//value.innerHTML = value.innerHTML.html();
//value.html(value.innerText);
//value.innerHTML = value.outerText;
以上方法都不起作用,它们都无法将图像渲染到 IE 上。
有关额外信息,我要转换的实际标记是:
"<a href=\"#\" class=\"caterReqClass\"><img src=\"/HWVDB/images/Cater-Icon.jpg\" alt=\"CaterReqAlternate\"/></a>"
【问题讨论】:
-
support.microsoft.com/kb/276228 我记得不久前有关innerHTML 在IE 中失败的事情。解决方法是获取 DOM 中的元素并将 .appendChild 附加到它。你试过了吗?
-
我尝试使用 jquery append 函数,但在 $.each 函数下它只是失败了。没有尝试过来自 DOM 元素的 .appendChild 函数,可以试一试。我希望留在 jquery 的范围内
标签: javascript jquery internet-explorer-9 innerhtml