Javascript 如何关闭html5颜色选择器?

Javascript 如何关闭html5颜色选择器?,javascript,html,macos,google-chrome,Javascript,Html,Macos,Google Chrome,在OSX上的chrome中,当您使用type=color的输入选择颜色时: 颜色选择器在很大程度上取决于每个浏览器、每个平台的实现。从技术上讲,无法通过编程将颜色选择器作为跨浏览器解决方案关闭 相反,您可以使用Javascript解决方案来呈现您自己的、类似于或类似于跨平台颜色选择器的颜色,这些颜色选择器甚至具有适当的触摸支持 编辑:您可以看到input type=“color”中没有close事件。进一步的阅读告诉我,由于这只是一个像文本输入或范围输入一样的输入,所以它不是你可以“控制”的东

在OSX上的chrome中,当您使用type=color的输入选择颜色时:


颜色选择器在很大程度上取决于每个浏览器、每个平台的实现。从技术上讲,无法通过编程将颜色选择器作为跨浏览器解决方案关闭

相反,您可以使用Javascript解决方案来呈现您自己的、类似于或类似于跨平台颜色选择器的颜色,这些颜色选择器甚至具有适当的触摸支持


编辑:您可以看到
input type=“color”
中没有
close
事件。进一步的阅读告诉我,由于这只是一个像文本输入或范围输入一样的输入,所以它不是你可以“控制”的东西。另一个选择可能是创建自己的。

这是一个我偶然发现的老问题,我在寻找相同的答案。通过将type属性翻转到“text”,然后再返回到“color”,我最终获得了想要的效果

我想我会和大家分享,以防其他人在这篇文章上绊倒

// vanilla JS:
input.setAttribute('type','text');
input.setAttribute('type','color');

// jQuery:
$input.attr('type','text').attr('type','color');
//看到它在运行!
var input=document.getElementById('my-color');
//当您单击颜色选择器时,我们将运行代码在2秒后关闭它。
input.addEventListener('focus',function(){
设置超时(()=>{
//切换类型属性以关闭选择器!
setAttribute('type','text');
setAttribute('type','color');
}, 2000);
});

你知道你缺少一个结尾引号吗?是的,那是一个输入错误,我点击了左上角的红色关闭按钮。Mac OS X El Capitan v10.11.1。在做了一些研究之后,我觉得没有办法通过编程关闭颜色选择器窗口。有计划添加它吗?这导致了一些问题,我不敢相信这只是一个无法控制的UI元素,在JS中是不可访问的,这是一个可以接受的状态。那么我在哪里可以找到解决每个浏览器问题的方法呢?我在chrome中找不到任何api文档,目前不允许使用任何第三方库。遗憾的是,由于每个浏览器都有自己的方式来处理此选择器,您可能需要浏览每个文档。但它们没有那么具体。刚刚给出了足够的信息,说明了每个浏览器在选择颜色时应该如何操作,但是关于关闭颜色的部分还没有给出。“颜色选择器的UI除了接受简单的颜色作为文本外,没有其他必要的功能”,所以我想这也是可以解释的。PS:如果你能解释你的反对票,我会很感激的。谢谢Josh您的答案很好,请继续回答您有独创性和有效解决方案的老问题。我只想指出,您可以将代码设为a,并且您可能希望包括一个注意事项,不幸的是,这只适用于某些浏览器(例如macOs上的FF失败)。