Javascript <;img/>;元素在添加图像时触发?
我正在动态地将内容添加到有图像的HTML中。根据设计,我不知道添加内容时的实际图像数据,但我正在使用JS检索这些数据。我需要一个事件来触发检索此内容的函数。到目前为止,我已经使用一个hack实现了这一点:Javascript <;img/>;元素在添加图像时触发?,javascript,html,image,events,Javascript,Html,Image,Events,我正在动态地将内容添加到有图像的HTML中。根据设计,我不知道添加内容时的实际图像数据,但我正在使用JS检索这些数据。我需要一个事件来触发检索此内容的函数。到目前为止,我已经使用一个hack实现了这一点: <img src="_" onerror="loadImage(this)" data-id="1"/> <img src="_" onerror="loadImage(this)&qu
<img src="_" onerror="loadImage(this)" data-id="1"/>
<img src="_" onerror="loadImage(this)" data-id="2"/>
<img src="_" onerror="loadImage(this)" data-id="3"/>
每个图像无法加载src=“\u8”
属性并触发onerror
句柄
我的问题是如何避免触发onerror
事件,并通过更合适的事件调用loadImage
。我正在寻找每个人的事件img
<强>更新:< /强>不要认为这是一个简单的问题。从C++代码到qWebVIEW中添加了图像<>强>动态<强>。没有任何实际的图像,我可以使用任何URL访问,但是我从数据库中检索它们作为字节数组(也从C++代码中检索)。我正在从JS函数<代码>访问程序> /COD>访问C++代码。我无法使用
窗口。onload
因为图像是在主页已加载时随机添加的。您可以将图像文件存储到数组(列表)中。这段代码只是一个例子,它每两秒钟就会更改image.src,您可以根据需要使用函数来处理它
var列表=[
“image1.jpg”,
“image2.jpg”,
“image3.jpg”,
];
var i=0;
函数更改imgs(){
i++;
i==list.length?i=0:0;
var image=document.getElementById('image');
image.src=列表[i];
document.getElementById('imgLink').href=list[i];
}
setInterval(函数(){
changeImgs()
}, 2000);
window.onload=changeImgs代码>加载占位符图像,然后挂接到onload
事件
<img src="placeholder.jpg" onload="loadImage(this)" data-id="1"/>
<img src="placeholder.jpg" onload="loadImage(this)" data-id="2"/>
<img src="placeholder.jpg" onload="loadImage(this)" data-id="3"/>
> > > p>您提到图像Src是C++代码访问的字节数组,可以直接在IMG<代码> SRC < /代码>中使用字节数组如下:
请检查此链接,该链接无法回答我的问题。为什么需要活动?负责将这些元素添加到DOM的代码当然也可以同时执行loadImage
。询问那些了解QWebView的人如何做到这一点,而不是搜索黑客。有一种方法可以检测DOM的添加,它被称为。不,从HTML处理它肯定是黑客。如果你可以控制插入的内容,那么你也应该在插入时做出反应,不要问与你无关的事情。我需要每个图像都有一个单独的事件。我认为 StaseTime/Cux>比代码< >错误> /代码>更脏,您需要用ID获取每个图像元素,然后应用一个函数,接下来,我不能使用窗口的<代码> OnLoad < /Case>事件,因为我正在动态添加内容。loadend
,您正在将src
添加到。因此肯定会给您一个错误。相反,您可以放置一些虚拟图像,如此图像正在加载
,或者是一种类似于gif
的动画,当javascript加载图像时,可以使用占位符替换图像的src
,这并不比触发错误更好(甚至更糟)。第二种方法根本不能回答我的问题,因为我在问如何触发函数。占位符图像通常用于延迟加载目的,当图像的实际源尚未准备好时,占位符图像才有意义。听起来好像C++代码是将图像元素插入页面,但是不知道代码< SRC>代码>应该是什么,这是正确的吗?在这种情况下,占位符image+onload
是有意义的。根本没有URL。我将图像存储在数据库中并检索实际的字节数据,因此src
属性是无用的。延迟加载是我使用onerror
事件实现的,但在我的例子中,我不必将占位符存储为文件。由于WebKIT是同步的,占位符甚至是不需要的。这是一个很好的建议,但是让我们考虑一下,我想单独添加图像并将字节数组检索到不同的模块中。PS我想知道是谁和为什么否决了你的答案。。。