111

我可能遗漏了一些简单的东西,但是当您阅读的所有内容都不起作用时,这很烦人。我有可能在动态生成的页面过程中重复多次的图像。因此,显而易见的事情是预加载它并始终使用该变量作为源。

var searchPic;
function LoadImages() {
    searchPic = new Image(100,100);
    searchPic.src = "XXXX/YYYY/search.png";
    // This is correct and the path is correct
}

然后我使用

  document["pic1"].src = searchPic;

或者

  $("#pic1").attr("src", searchPic);

但是,当我查询我得到的图像作为图像的图像时,图像永远不会在 FireBug 中正确[object HTMLImageElement]设置src

在 IE 中我得到:

http://localhost:8080/work/Sandbox/jpmetrix/[object]
4

10 回答 10

107

您应该使用以下方法设置 src:

document["pic1"].src = searchPic.src;

或者

$("#pic1").attr("src", searchPic.src);
于 2009-08-05T12:03:00.830 回答
68

纯 JavaScript 来创建img标签和add attributes手动,

var image = document.createElement("img");
var imageParent = document.getElementById("body");
image.id = "id";
image.className = "class";
image.src = searchPic.src;            // image.src = "IMAGE URL/PATH"
imageParent.appendChild(image);

设置源pic1

document["#pic1"].src = searchPic.src;

或使用 getElementById

document.getElementById("pic1").src= searchPic.src;

j-Query 来存档这个,

$("#pic1").attr("src", searchPic.src);
于 2014-06-19T11:17:17.670 回答
7

图像构造函数的实例并不意味着可以在任何地方使用。您只需设置src,图像就会预加载……就是这样,表演结束了。您可以丢弃该对象并继续前进。

document["pic1"].src = "XXXX/YYYY/search.png"; 

是你应该做的。您仍然可以使用图像构造函数,并onloadsearchPic. src这可确保在您在真实img对象上设置之前加载图像。

像这样:

function LoadImages() {
    searchPic = new Image();
    searchPic.onload=function () {
        document["pic1"].src = "XXXX/YYYY/search.png";
    }
    searchPic.src = "XXXX/YYYY/search.png"; // This is correct and the path is correct
}
于 2009-08-05T12:04:22.933 回答
6

此外,解决此问题的一种方法是使用document.createElement和创建您的 html img并像这样设置其属性。

var image = document.createElement("img");
var imageParent = document.getElementById("Id of HTML element to append the img");
image.id = "Id";
image.className = "class";
image.src = searchPic.src;
imageParent.appendChild(image);

备注:有一点是 Javascript 社区现在鼓励开发人员使用文档选择器,例如querySelector,getElementByIdgetElementsByClassName不是 document["pic1"]。

于 2013-12-08T17:03:45.297 回答
2
document["pic1"].src = searchPic.src

应该管用

于 2009-08-05T12:03:01.687 回答
1

你不需要构建一个全新的图像...... src 属性只需要一个字符串值:-)

于 2009-08-05T12:04:00.967 回答
0

你需要设置

document["pic1"].src = searchPic.src;

searchPic 本身就是您的 Image(),您需要阅读您设置的 src。

于 2009-08-05T12:03:40.593 回答
0

您的 src 属性是一个对象,因为您将 src 元素设置为您在 JavaScript 中创建的整个图像。

尝试

document["pic1"].src = searchPic.src;
于 2009-08-05T12:05:17.347 回答
0

哇!当你使用srcthen srcof时searchPic也必须使用。

document["pic1"].src = searchPic.src

看起来更好

于 2009-08-05T12:05:53.600 回答
0

如果您使用的是WinJS,则可以src通过Utilities函数更改。

WinJS.Utilities.id("pic1").setAttribute("src", searchPic.src);
于 2013-12-17T20:10:50.987 回答