“element"形象.非预期时调用的Onerror方法
"image element".onerror method called when not expected
相关JavaScript源代码:
var e = o3('img');
e.className = "c";
e.name = "bo_im";
e.src = b.href + 'favicon.ico';
e.onerror = i3d(e);
function i3d(a) {
a.src='http://www.archemarks.com/favicon1.ico';
}
怎么样e.onerror = function(a) { a.src='http://www.archemarks.com/favicon1.ico'; };
o3()
创建image元素。我在第二行设置了对象属性。我期望i3d
只在图像不加载时运行,即当网站没有提供图标时。
当我在图像元素中放置onerror(通过内联注册)时,这就是它的工作方式-正如我所料。
然而,当我把它放在javascript中,如上所示,每次创建新图像时都会调用它。我需要它只在图像未加载时调用,因为i3d
将src
更改为通用图像。
谢谢
试试这样做:
var e=o3('img');
e.className="c";
e.name="bo_im";
e.onerror=i3d;
e.src=b.href+'favicon.ico';
onerror
只需要赋值一个函数,而不是调用函数的结果。您不需要将e
传递给函数。如果i3d
被调用,this
指针将被设置为img(即e
)。
并且,您需要在分配.src
之前设置.onerror
,因为它可以在您分配。src时被触发。
另外,我希望你只在这里的例子中使用e
, c
和b
这样的变量名,而不是在实际代码中使用,因为它们无助于使你的代码非常可读,描述性或可理解。
这是因为您将onerror
设置为i3d(e)
的值,而不是实际将该函数绑定到onerror
。
我想你想要这样的东西:
e.onerror=i3d.bind(e)
相关文章:
- 未捕获错误:无法在初始化之前调用方法;
- 通过ajax从客户端调用C#方法来执行C#方法
- 如何避免在angular上多次调用方法;s ng重复
- React路由器错误-'无法调用方法'getRouteAtDepth'的未定义'
- 从window.onbeforeunload调用方法背后的代码
- 当输入字段为空时,如何在angular中调用方法
- 函数调用方法有什么用
- 多次调用方法后返回相同promise的模式
- 当从Chrome扩展动态注入JS时,从onload()内部调用方法
- 茉莉花 - 未调用方法
- jQuery如何在原型中调用方法
- ng显示“;调用方法“;不起作用
- Odoo销售点如何访问模型并使用JS调用方法
- 从React调用方法.JS州
- TinyMCE验证给出错误:无法调用方法'getContent'的未定义
- 向模板实例变量传递调用方法调用的结果时出现异常
- 如何在对象中调用方法
- 检查对话框是否为 Open 会引发“初始化前无法在对话框上调用方法”错误
- 在输入类型提交按钮上调用 C# 方法
- 通过类选择器单独调用方法