我期望看到的内容(来自chrome的输出)
safari给了我什么
以类似于以下方式获得的结果:
var myHandler;
myHandler = function(e) {
return console.log(e);
};
var image = new Image()
image.onload = myHandler
image.src = "http://upload.wikimedia.org/wikipedia/commons/thumb/8/85/Smiley.svg/2000px-Smiley.svg.png"
有没有办法在safari中获取预期的事件对象?或者就此而言,以浏览器无关的方式确保正确的事件对象?
答案 0 :(得分:1)
属性仍然存在,但它们由prototype chain提供,Safari的控制台在__proto__
属性下折叠。
快速测试表明,Chrome会在事件对象本身上设置属性,但Safari和Firefox依赖于原型链。
var myHandler;
myHandler = function(e) {
return console.log(e.hasOwnProperty("bubbles"));//true in Chrome, false in Safari and Firefox.
};
var image = new Image();
image.onload = myHandler;
image.src = "http://upload.wikimedia.org/wikipedia/commons/thumb/8/85/Smiley.svg/2000px-Smiley.svg.png";
注意:强>
__proto__
中的某些属性在控制台中显示为undefined
,即使实际访问这些属性也会产生正确的值。我相信Safari在内部对这些属性使用了getter函数。
答案 1 :(得分:0)
您确定文档准备好了吗?您应该使用以下内容检查它:
$( document ).ready(function() {
console.log( "ready!" );
});