有个项目要兼容IE8前端这边报出一个错误,我也来凑个热闹看了一下
html代码
<li>
<a href="javascript:void 0" onclick="ifr_url('xx')">xxx</a>
</li>
js代码
let ifr = $("#ifr");
$(".nav").click(function () {
ifr_url($(this).attr("data-url"));
});
function ifr_url(url) {
ifr.attr("src", url);
}
错误信息
SCRIPT5007: 属性“ifr_url”的值为 null、未定义或不是 Function 对象
解决方法
- html代码
<li>
<a href="javascript:void 0" data-url="xxx" class="left-menu-click">xxx</a>
</li>
- js代码
在标签上直接绑定事件就会报错,除了上面的写法,onclick也是一样
var ifr = $("#ifr");
$(".nav,.left-menu-click").click(function () {
ifr_url($(this).attr("data-url"));
});
function ifr_url(url) {
ifr.attr("src", url);
}
- 总结
直接在标签上绑定事件,如JavaScript:fun()或者onclick是不行的,我们就换到下面js中用jq来绑定事件
- 其他发现
IE8 不支持let写法,上面写了js中改为var