猿问

img的src属性不能直接调用函数吧?

很久以前的一个老项目,jsp做的,当时因为把所有图片放到一个固定的地方存放,所以要求我去写一个通用方法,所有img标签调用那个方法然后去加载图片。
由于当时我比较菜,在网上找了个奇葩方法:

<img src="?" onerror="getUrl(this)">

果然解决问题了。但是,后来发现凡事用了onerror的页面,后台接口调用两次,这事一直搁着,我也很久没碰了,后来发现老大在我原来的基础上改成了这样,结果接口只调用一次了:

<img src="getUrl(this)" onerror="getUrl(this)">

虽然调两次接口的问题解决了,但是,我从来都不知道imgsrc可以直接用js函数的,于是我在本地试了下,根本不行啊,报错啊!
我去看了规范:https://whatwg-cn.github.io/h... ,规范上提到src属性并不能执行js脚本,而我现在又没有那个项目最新代码,也不知道老大为什么这样写就解决掉两次接口问题,难不成src="getUrl(this)"阻止了src的执行,所以src原先需要去掉接口的但是被阻止了???


倚天杖
浏览 1608回答 2
2回答

慕标5832272

当然不能。会被当作 URL 的。大概是那个 URL 404 了,所以出错,调用 onerror。之前调用两次的问题,你可以把错误打出来看看。比如第一次 onerror 处理器时在设置 src 时出了点问题。

慕桂英3389331

如果src里不能用函数的话,会不会直接当字符串处理了?然后必然报错,就执行onerror了。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答