gpt4 book ai didi

javascript - JS 生成的不可编辑 DIV 无法在 Chrome 中聚焦(和模糊),直到静态 HTML 编码可以

转载 作者:行者123 更新时间:2023-11-28 00:05:41 25 4
gpt4 key购买 nike

我发现在 GoogleChrome (43.0.2357.132 m) 中,不可编辑的 JavaScript 生成的 DIV 无法获得焦点,因此它永远不会模糊,但静态 HTML 编码的 DIV 可以。

有人可以帮助我如何使 JS 生成的版本获得焦点和模糊吗? (在IE下效果很好)Chrome 中是否存在我未设置的参数或其他内容?

我尝试通过 JS 制作自己的组合框输入,我想使用不可内容编辑的 div,例如选择选项,但我需要知道它是否模糊才能正常工作。因此,将这些设置为 contenteditable 不是解决方案......

这里是要尝试的示例代码:

<!DOCTYPE html> <!--HTML5-->
<html lang= "hu">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

<script language = "javascript">
function fblur(event){
console.log('BLUR\nevent.target: '+event.target.id);
console.log(event);
alert('DIV BLUR EVENT FIRED');
}

function fclick(event){
event.target.focus();
console.log('CLICK\nevent.target: '+event.target.id);
console.log(event);
}
</script>
</head>

<body id="Body">
<div style="border: 1px solid;
height: 20px;
width: 200px;"
id="STATIC HTML DIV1"
contenteditable="false"
tabindex="1"
onclick="fclick(event)"
onblur="fblur(event)"
>STATIC HTML DIV1</div>

<BR />

<script language = "javascript">
var uiobj=document.createElement("DIV");
var t = document.createTextNode('JS GENERATED DIV1');
document.body.appendChild(uiobj);
uiobj.appendChild(t);
uiobj.style.border = '1px solid';
//uiobj.style.display = 'block';
uiobj.style.height = '20px';
uiobj.style.width = '200px';
uiobj.id = 'JS GENERATED DIV1';
uiobj.contentEditable = false;
uiobj.tabindex= '2';
uiobj.addEventListener('click', fclick, false);
uiobj.addEventListener('blur', fblur, false);
</script>
</body>
</html>

如果你尝试一下,第一个 div 会聚焦并模糊。如果模糊就会发出警报。第二个 div 应该做同样的事情,并且在 ID 中做得很好,但在 Chrome 中,第二个 DIV 不会模糊。

谢谢帮助!

最佳答案

要将元素声明为可聚焦(以及“可模糊”),您需要设置一个 tabindex。请参阅:

The tabindex content attribute allows authors to indicate that an element is supposed to be focusable

https://html.spec.whatwg.org/multipage/interaction.html#focusable-area

您的问题在这里:

uiobj.tabindex= '2';

应该是:

 uiobj.tabIndex= '2'; //with a capital I

因此,两个元素之间的区别不在于其中一个是动态生成的,而是因为该拼写错误而没有一个 tabindex。如果您删除静态索引上的 tabindex,它也将无法获得焦点。

关于javascript - JS 生成的不可编辑 DIV 无法在 Chrome 中聚焦(和模糊),直到静态 HTML 编码可以,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31363252/

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