gpt4 book ai didi

javascript - 当 console.dir 仅输出 "[object Object]"时,如何调试 IE10 中的 MSPointer 事件?

转载 作者:行者123 更新时间:2023-11-28 02:11:27 26 4
gpt4 key购买 nike

我正在调试new event object model,这真是太麻烦了。在 IE10 中。由于 Microsoft 更改了事件模型,绑定(bind)到“touchstart”的代码在遇到 event.originalEvent.touches[0].target 时会抛出错误。好的。但我无法检查其新 MSPointer 事件对象的属性以使其按自己的方式工作:出于某种原因,IE10 仅从 console.log 输出 [object Object] 和来自 console.dir“[object Object]”

为什么? (有人知道吗?)

我听说 console.log(JSON.stringify(obj)) 输出属性,它确实输出属性——除了事件对象,因为它们实际上是函数。太棒了!

这是我的问题的关键:有人有关于如何在为触摸事件绑定(bind) MSPointerDown 时调试事件属性的提示吗?我是否必须在某处启用一个设置才能让它记录有用的信息?

这里是一些示例代码:

$('body').bind( ( window.navigator.msPointerEnabled ? "MSPointerDown" : "touchstart" ), function (event) {
console.dir(event);
// outputs "[object Object]" in IE10
});

注意:我还通过书签尝试了 Firebug Lite,但它不允许从我的远程虚拟机输出脚本。

最佳答案

我写了一个快速记录功能,在这里试试:

http://jsfiddle.net/V28zY/3/

JSFiddle 代码:

function ownKeys(obj) {

var o = {};
for (var key in obj) {
o[key] = true;
}
try {
Object.getOwnPropertyNames(obj).forEach(function (k) {
o[k] = true;
});
} catch (e) {}
var ret = [];
for (var key in o) {
ret.push(key);
}
return ret;
}

function logObject(obj, indent, seen) {
var seen = seen || [];
var indent = indent || 0;

ownKeys(obj).slice(0, 50).sort().forEach(function (key) {
var value = obj[key];


if (Object(value) === value) {
if (typeof value === "function") {
console.log(Array(indent * 4 + 1).join(" ") + key, " = ", "[Function]");
} else if (value.appendChild) {
console.log(Array(indent * 4 + 1).join(" ") + key, " = ", "[DOMNode]");

} else if (seen.indexOf(value) === -1 && value !== obj && value !== window) {
console.log(Array(indent * 4 + 1).join(" ") + key + ":");
seen.push(value);
logObject(value, indent + 1, seen);
} else {
console.log(Array(indent * 4 + 1).join(" ") + key, " = ", "[Recursion]");
}
} else {
console.log(Array(indent * 4 + 1).join(" ") + key, " = ", JSON.stringify(value));
}
});
}

$('body').bind((window.navigator.msPointerEnabled ? "MSPointerDown" : "touchstart"), function (event) {
logObject(event);
});

关于javascript - 当 console.dir 仅输出 "[object Object]"时,如何调试 IE10 中的 MSPointer 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17031483/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com