event.path[n].id
在Firefox中运行时,出现此错误。它可以在其他浏览器中使用。
event.path未定义
对象的path
属性Event
是非标准的。标准等效项是composedPath
,这是一种方法。但这是新的。
因此,您可能想要尝试回退到该位置,例如:
var path = event.path || (event.composedPath && event.composedPath());
if (path) {
// You got some path information
} else {
// This browser doesn't supply path information
}
显然,如果浏览器不提供路径信息,它将不会为您提供路径信息,但是它同时支持旧方法和新的标准方法,因此将尽其所能地跨浏览器。
例:
document.getElementById("target").addEventListener("click", function(e) {
// Just for demonstration purposes
if (e.path) {
if (e.composedPath) {
console.log("Supports `path` and `composedPath`");
} else {
console.log("Supports `path` but not `composedPath`");
}
} else if (e.composedPath) {
console.log("Supports `composedPath` (but not `path`)");
} else {
console.log("Supports neither `path` nor `composedPath`");
}
// Per the above, get the path if we can
var path = e.path || (e.composedPath && e.composedPath());
// Show it if we got it
if (path) {
console.log("Path (" + path.length + ")");
Array.prototype.forEach.call(
path,
function(entry) {
console.log(entry.nodeName);
}
);
}
}, false);
<div id="target">Click me</div>
在我的html" target="_blank">测试(2018年5月更新)中,IE11和Edge都不支持path
或composedPath
。Firefox支持composedPath
。Chrome支持path
(这是Google的原始想法)和composedPath
。
因此,我认为您无法直接在IE11或Edge上获取路径信息。你可以很明显,获得通过的路径e.target.parentNode
和每个随后parentNode
,这
通常 是相同的,但当然点的path
/ composedPath
是,它并不 总是
该事件被触发后,相同的(如果事情修改DOM但在此之前你的处理器接到电话)。
考虑以下C程序: null 访问易失性对象、修改对象、修改文件,或者调用执行那些操作中的任何操作的函数都是副作用,它们是执行环境状态的改变。表达式的计算通常包括值计算和副作用的启动。用于lvalue表达式的值计算包括确定指定对象的标识。 Sequenced before是单线程执行的计算之间的非对称、传递、成对关系,它导致这些计算之间的部分顺序。给定任意两个评价A和B,如果A排序在B之前,那么A的
尽管标题出现了,但这并不是一个哲学问题。 从未初始化的数组读取 使用错误数据 使用不可移植构造。(即内存分配的细节1) 导致具有的行为 标准没有要求产生可预测的效果 我会称之为“未定义的行为”。但也许我错过了什么(?) null null
问题内容: 我基本上是这样做的,所以当您单击按钮进行“投票”时 目前我有 client.php 如您在上方看到的,有一个onclick forvotUp()函数。 在页面底部,我有 并在 scripts.js中 (我从有关单击div运行php文件的教程中获得了voteUp()的知识) 最后在 voteup.php中 当我单击带onclick =“ voteUp()”的DIV的Vote Up按钮时
问题内容: 我正在对WCF服务进行AJAX调用,当我传递数据时,我使用JSON.stringify() 通话返回并在FF和Chrome中正常运行,但在IE8中则无法正常运行。我收到一个错误:“ JSON”未定义 建议? PS我也希望这在IE7中工作 问题答案: 使用json2可以实现一致的跨浏览器实现。 https://github.com/douglascrockford/JSON- js
问题内容: 为什么我在这里未定义状态?我尝试了各种解决方案,但没有一个对我有用。有人可以指出这里做错了什么吗 编辑: 组件的完整代码 当从服务器动态加载侧边栏内容时,也有人可能会建议一个更好的选择 问题答案: 通过使用这种方式,您会失去上下文,而不是您所期望的那样。 在这种情况下,请将箭头功能用作: 或者, 这就是我的建议 ,请移至方法之外: 也可以将其绑定到构造函数中:
问题内容: 每次执行时,都会在输出日志中附加一行提示。 在Windows和Linux上的Firefox和Chrome中都会发生。 问题答案: 如果您是从JS文件运行的,则不应添加此行。 如果您是从控制台本身运行的,那么这很有意义。这是为什么:在控制台中,您可以键入变量的名称(例如,尝试键入),并打印有关该变量的信息。当您从控制台运行任何void函数(例如console.log)时,在这种情况下,它