2009-11-08 85 views
0

大家好,晚上好,jQuery的加载()不显示图像

我正在使用JavaScript从HTML文件加载/覆盖内容到指定的div。
您可以watch a demo

,做负载的工作看起来像下面的JavaScript:

function loadScreenie(elementSelector, sourceURL) { 
    $(""+elementSelector+"").load("img/screenies/"+sourceURL+""); 
} 

,并得到通过看这样的超链接引用:

<a href="javascript:loadScreenie('#iphone-screen', 'screenie2.htm');">mibmib</a> 

(我也曾尝试用的onclick相同= “”)

这是screenie2.htm的内容

hello world<br /> 
<img src="screenie2.png" /> 

问题是图像不显示。的行为是这样的:
- 您点击链接并执行javascript。
- 正确显示screenie2.htm中的文本
- 显示的图像是而不是。也没有任何破碎的图像符号或空的空间。

你有什么想法可能会导致此错误?

非常感谢提前,
- 班尼

+3

我看到了很好的图像......假设在您的演示页面上,我点击了唯一可能的链接。 – 2009-11-08 18:09:13

+0

是的 - 图像''也出现在我身上 – 2009-11-08 18:14:27

+1

问题是演示程序加载了同一目录中的所有内容。但是他的问题表明文档是从一个子目录加载的。 – 2009-11-08 20:24:25

回答

2

好的。让我来结束这里发生的事情。

  1. 当用户点击链接时,jQuery的负载“IMG/screenies/screenie2.htm
  2. 图像标签<img src="screenie2.png" />插入DOM。

所以,我们有一个图像链接到在应该像./screenie2.png,在那里你会相信它应该链接到*/** IMG/screenies/** * screenie2.png

你需要在你的load()使用绝对URL。:编辑内容

+0

是的,尝试MC谈论的绝对URL ...听起来是正确的。 – btelles 2009-11-08 23:56:12

+0

这个作品,非常感谢!我也让我的文件结构更简单一些,因为这很复杂:)谢谢 – ngmir 2009-11-09 10:49:18

0

如果你使用IE浏览器测试,该问题可能是jQuery使用,而不是创建与负载命令各DOM元素的innerHTML。 IE可以非常挑剔。

+0

我正在测试FF,Safari和Chrome,所有最新版本。 – ngmir 2009-11-09 10:49:58