未在HTML页面的jQuery load()中加载图像
我使用以下代码在div中加载html页面未在HTML页面的jQuery load()中加载图像,jquery,html,ajax,load,Jquery,Html,Ajax,Load,我使用以下代码在div中加载html页面 $("#htmlViewer").load("conversion_test/to_convert_3264/"+getPageName(pageCount)+".htm", function(response, status, xhr) { if (status == "error") { /* var msg = "Sorry but there was an error
$("#htmlViewer").load("conversion_test/to_convert_3264/"+getPageName(pageCount)+".htm", function(response, status, xhr) {
if (status == "error") {
/* var msg = "Sorry but there was an error: ";
$("#error").html(msg + xhr.status + " " + xhr.statusText); */
jAlert('Unexpected Error : Please try again later', 'Alert');
pageCount--;
}
});
在上面的代码中,我只得到HTML文本,但没有得到该页面中的CSS和图像。为了获得CSS,我添加了另一个Ajax请求。如果没有这一点,ajax调用中加载的页面将不会应用css样式
$.ajax({
url:"conversion_test/to_convert_3264/style.css",
success:function(data){
$("<style></style>").appendTo("head").html(data);
}
})
$.ajax({
url:“conversion\u test/to\u conversion\u 3264/style.css”,
成功:功能(数据){
$(“”).appendTo(“head”).html(数据);
}
})
我不确定这样做是否正确。问题是我在ajax调用期间没有得到图像。图像来自conversion\u test/to\u conversion\u 3264/images
文件夹。非常感谢您的帮助。如果我需要提供更多细节,请告诉我
提前谢谢。我终于根据@MiikaL的建议修复了。下面是我解决这个问题的代码
function replaceImageSource() {
$("img").each( function(){
$(this).attr({
src: 'conversion_test/to_convert_3264/' + $(this).attr('src')
});
});
}
希望这能帮助一些人。感谢您的帮助。将写下这篇文章作为答案,因此它比评论线索更明显: 问题是调用页与被调用页不在同一文件夹中。目标页引用具有相对路径的图像,因此当其插入调用页时,这些引用不再匹配。换句话说,页面的上下文已更改 有两种可能的解决方案:
因为您没有请求图像。您的ajax调用只能请求您指定的uri/url。谢谢,但是如何使图像显示任何建议?是否可以动态加载图像文件夹以便显示图像?这不可能通过jQuery实现-进行ajax调用的页面是否与被调用页面位于同一文件夹中?问题可能是图像是相对于目标页面引用的,这意味着它们在插入代码的页面中是错误的?