设置innerHTML - 图像没有显示但是alt是

时间:2011-08-04 01:04:22

标签: html ajax image innerhtml

我有一个页面,我从ajax请求中提取一些html,然后将其插入到div中。 html正确地进入div,除了图像没有显示,但它的替代文字是。这是html:

<div class='fltright'><img src='images/esl.jpg' alt="English as a Second Language"/></div><!-- end fltright --><p><span class='large'>Lorem ipsum dolor sit amet,</span> consectetur adipiscing elit. Cras tempor semper tortor. </p>

是否有任何理由在替代文字出现时图片不会显示?

AJAX代码:

function getData(fileName){
    fileLoc = encodeURI("assets/"+fileName+".html")
    //alert(fileLoc);
    request.onreadystatechange = processData;
    request.open("GET",fileLoc, false);
    request.send();
    //alert(request.readyState);
    //alert(response);
    //alert(request.status);
}
function processData(){
    if (request.readyState==4){
        if (request.status==200){
            try{
                response = request.responseText;
                document.getElementsByClassName('content')[0].innerHTML = response;
            } catch(e){
                alert("Error: " +e.description);
            }
        }
        else{
            alert("An error has occured making the request");
        }
    }
}

3 个答案:

答案 0 :(得分:2)

我会检查这些图像实际上是否可见。检查的一个好方法是右键单击并“查看图像...”。然后会要求您的浏览器专门请求该图像。

如果您在此服务器上找不到Not Found请求的图像images / esl.jpg,那么您的网址不正确。

如果您获得Forbidden您无权访问此服务器上的images / esl.jpg。那么这是一个权限问题。正如Endophage所说,您将需要为Apache进程设置正确的文件和目录权限,以便能够查看该图像。

答案 1 :(得分:0)

通常在使用AJAX时,您会忘记图像与文档所在位置的关系。尝试从根位置引用图像,如下所示..

../ images / esl.jpg

答案 2 :(得分:0)

我觉得图像实际上是资产/ images / esl.jpg,而不是images / esl.jpg

考虑您的网页所在位置和您正在抓取的网页之间的区别......