Javascript 内联创建输入:颜色并单击()
chrome似乎有一个Javascript 内联创建输入:颜色并单击(),javascript,color-picker,Javascript,Color Picker,chrome似乎有一个 此代码工作:(使用文件输入) 但此代码不是:(带有颜色输入) 为什么-( 要测试代码,可以打开console浏览器并粘贴代码。 谢谢你的帮助。试试这个 var input=document.createElement('input'); 输入.setAttribute(“类型”、“颜色”); document.body.appendChild(输入); input.addEventListener(“单击”,onColorBoxClick); 函数onColorBoxC
此代码工作:(使用文件输入)
但此代码不是:(带有颜色输入)
为什么-(
要测试代码,可以打开console浏览器并粘贴代码。
谢谢你的帮助。试试这个
var input=document.createElement('input');
输入.setAttribute(“类型”、“颜色”);
document.body.appendChild(输入);
input.addEventListener(“单击”,onColorBoxClick);
函数onColorBoxClick(){
log('onclick');
}
您只需在变量中创建它,并且必须将其附加到正文中。
所以在结尾必须写下:
document.body.appendChild(input);
在firefox的最新chrome edge上测试 只有firefox能够从控制台打开模式 铬和边什么都不做 因此,这是一种错误/功能解决方案 对于颜色输入,需要将输入添加到dom中。 在我的上下文(angular)中,我需要添加第二行代码来修复插入dom延迟,如下所示:
var input = document.createElement('input');
input.type = 'color';
input.style.opacity = 0;
document.body.appendChild(input);
$timeout(function() {
input.click();
}, 100);
这样做有安全风险,所以我认为它不会在所有浏览器中都可用,据说IE允许,但Mozilla和Opera不允许 检查以下答案:
您可以在此处粘贴错误?因为我在尝试使用JSFIDDLE时没有看到错误。事实上,如果您添加
input,则不会有任何反应。在同一个代码段上单击()
,则不起作用。如果您稍后再执行,则不会有相同的结论:-)
document.body.appendChild(input);
var input = document.createElement('input');
input.type = 'color';
input.style.opacity = 0;
document.body.appendChild(input);
$timeout(function() {
input.click();
}, 100);