gpt4 book ai didi

javascript - Internet Explorer 中的 srcElement.readOnly 和 target.readOnly 问题

转载 作者:行者123 更新时间:2023-11-30 18:07:39 24 4
gpt4 key购买 nike

我不确定我是否理解 IE 在我正在使用的脚本中的行为。这是我正在使用的脚本的一部分,它似乎在 Chrome 中运行良好

$(document).keydown(function (event) {
var keyvalue = event.which || event.keyCode;
var eventtarget = event.srcElement.nodeName || event.target.nodeName;
var readonlycheck = event.srcElement.readOnly || event.target.readOnly;
});

问题出在 readonlycheck 变量上。在 IE 中,我得到以下错误“无法获取未定义或空引用的属性‘readOnly’。”

在 Chrome 中,如果已定义,则 readOnly 返回“true”,否则返回“false”。 IE 给了我一个错误,即使它仍然适用于 nodeName。

我真正感到困惑的地方是我可以通过更改最后一行来消除 target.readOnly 来使其工作。所以这似乎在两种浏览器中都有效......

var readonlycheck = event.srcElement.readOnly;

谁能解释为什么这对 readOnly 的行为不同?另外,我认为 srcElement 只是 IE,那么为什么 Chrome 在没有 target.readOnly 的情况下仍然可以工作?

如有任何帮助,我们将不胜感激。我对 javascript 和 jquery 还是很陌生,所以我确定我遗漏了一些东西。

最佳答案

var readonlycheck = event.srcElement.readOnly || event.target.readOnly;

应该改成

var readonlycheck = (event.srcElement !== undefined) ? event.srcElement.readOnly : event.target.readOnly;

您是如何编写代码的,即使 srcElement.readOnly 确实存在,当它评估为 false 时它会尝试读取 event.target,这会破坏 IE。

关于javascript - Internet Explorer 中的 srcElement.readOnly 和 target.readOnly 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15417943/

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