未在HTML页面的jQuery load()中加载图像

未在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

我使用以下代码在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: ";
                     $("#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')
              });
            });
    }

希望这能帮助一些人。感谢您的帮助。

将写下这篇文章作为答案,因此它比评论线索更明显:

问题是调用页与被调用页不在同一文件夹中。目标页引用具有相对路径的图像,因此当其插入调用页时,这些引用不再匹配。换句话说,页面的上下文已更改

有两种可能的解决方案:

  • 对图像使用绝对路径,这样上下文就无关紧要了
  • 使用jQuery修复接收到的html中的路径(Dilip自己在年提出了这方面的代码)

  • 因为您没有请求图像。您的ajax调用只能请求您指定的uri/url。谢谢,但是如何使图像显示任何建议?是否可以动态加载图像文件夹以便显示图像?这不可能通过jQuery实现-进行ajax调用的页面是否与被调用页面位于同一文件夹中?问题可能是图像是相对于目标页面引用的,这意味着它们在插入代码的页面中是错误的?