2009-10-06 94 views
1

我有下面的javascript函数来创建一个图像,将显示在另一个图像悬停,但图像不加载...只是当它无法找到图像的地方的小符号。img not showing

什么不对这个代码:

function createimg() 
{ 
    var img = new Image(); 
    img.src='images/imageoverlay.png'; 
    img.id = 'span1'; 
    img.style.zIndex = 10; 
    img.style.position = 'absolute'; 
    img.style.display='none'; 
    img.style.top = '140px'; 
    img.style.padding='10px'; 
    img.style.left='240px';  
    img.className ='dynamicSpan'; 
    document.body.appendChild(img); 
} 

的图像坐在images子目录这个地方这个代码文件坐镇。

+0

你有没有尝试设置警报显示'img.src'变量,以检查它是一个有效的路径,或使用Firebug,看看是否被请求的文件,或者检索中的任何错误? – 2009-10-06 21:26:22

+0

这个问题几乎肯定是'img.src'中的一个不正确的路径,否则你不会得到“丢失的图像”图标。 – 2009-10-06 23:06:23

回答

1

右键单击“丢失的图像符号”,单击“属性”。看看它所说的网址 - 很可能是网址不正确。如果当前页面位于子文件夹中,则URL可能最终出错。

你可能想要把图像的准确网址:

img.src='http://yoursite.com/images/imageoverlay.png'; 
3

如果您将img.style.display设置为无将不会显示图像。多数民众赞成在你指定的,这将隐藏你的形象(见css reference无:该元素将根本不会产生任何框)。

+0

,但即使显示'块',实际图像不显示。别的东西一定是错的...... – 2009-10-06 20:52:19

0

你的代码工作对我很好(有一次我改变​​)在IE和FF - 所以这要么意味着图像的URL是不正确的(它应该是图像相对于页面的路径 - 或者只是使用绝对引用),或者你根本就不调用创建图像的函数。 (或者你在错误的地方调用它,比如DOM准备好之前的<head></head>

你是如何调用函数的?

1

当在代码中指定时,源是相对于页面的。

在CSS中指定时,它是相对于CSS文件。

例如,如果您有以下结构:

/page.html 
/css/style.css 
/scripts/script.js 
/images/image.png 

在page.html中:

<img src="images/image.png"> 

在style.css中:

#image { background-image: url(../images/image.png) } 

注意” .. “!这意味着首先在“图像”文件夹下进入关卡。

在的script.js:

img.src = "images/image.png";