JavaScript:console.log它能打印JS事件的完整(非截断)输出吗?
当我执行JavaScript:console.log它能打印JS事件的完整(非截断)输出吗?,javascript,console.log,Javascript,Console.log,当我执行console.log(e)时,我得到: PointerEvent{isTrusted:true,pointerId:1,width:1,…} 是否有办法打印完整输出并删除省略号(…)?注意:我想打印事件对象的所有属性 也许是多余的背景信息,但我这样做的动机是:我想在一个JS脚本中重新模拟事件,使所有事件自动化,我希望我创建的事件完全相同(我想在vanillaJS中这样做,因为我不能使用Selenium或其他类型的东西).只需单击省略号或行首的箭头,即可将其展开。如果只想显示自定义属性,
console.log(e)
时,我得到:
PointerEvent{isTrusted:true,pointerId:1,width:1,…}
是否有办法打印完整输出并删除省略号(…)?注意:我想打印事件对象的所有属性
也许是多余的背景信息,但我这样做的动机是:我想在一个JS脚本中重新模拟事件,使所有事件自动化,我希望我创建的事件完全相同(我想在vanillaJS中这样做,因为我不能使用Selenium或其他类型的东西).只需单击省略号或行首的箭头,即可将其展开。如果只想显示自定义属性,请尝试使用
console.log(JSON.stringify(e,null),)
我尝试了几种方法,它们都有各自的缺点和优点
我曾经
const newEvent = {};
for (var property in e) {
newEvent[property] = e[property];
}
在其他情况下
const entries = [];
for (var property in e) {
entries.push(property);
entries.push(e[property]);
}
只需记录entries数组,就会产生70多个键/值对,数组中有133个项(不知道为什么这个数字是奇数)。可以用JSON将其打印到数组(或对象)中,但这是一次可怕的经历,因为在替换循环引用时,字符串化会变得丑陋(可以这样做,但格式不是我想要的)
最终,我用以下代码对其进行了黑客攻击:
const entries = [];
const entries2 = [];
let i = 0;
for (let property in e) {
i++;
if (i <= 40) {
entries.push(property);
entries.push(e[property]);
}
if (i > 40) {
entries2.push(property);
entries2.push(e[property]);
}
}
console.log(i, entries, entries2);
const条目=[];
常数entries2=[];
设i=0;
for(将属性放在e中){
i++;
如果(i)40{
中心2.推送(属性);
entries2.push(e[属性]);
}
}
控制台日志(i、条目、条目2);
此代码的泛化将无限期地将数组分割为大约30个键/值对。在事件行处放置一个断点,然后开始键入
e。
我正在记录大量mousemove事件,我希望拥有对象的所有数据。隐马尔可夫模型。。。我想我应该把它字符串化。你可以使用console.dir
而不是console.log
,如图所示:可能与我在提问之前尝试过的相同,console.dir
在Chrome浏览器中不起作用,可能是其他浏览器。但我一次打印出了数百个mousemove。我不会点击100多次。@MelvinRoest在本例中使用JSON.stringify
并只打印您需要的内容。我的问题有很多实用的解决方案,但我想:应该可以自动打印JS事件的所有值,不是吗?如果想要捕获事件的所有数据,这将非常方便。@MelvinRoest检查如何将事件转换为JSON(确保检查2019更新)。顺便说一句,如果您要打印所有属性,我认为调试此类事件将非常困难。我的建议是只打印您真正需要的东西。是的,我会的,但我想浏览器中会有一些设置可以更改?我的屏幕有一半是空的,因为它没有完全填满右边。