使用不带type = color的javascript打开浏览器标准colorpicker

时间:2015-04-16 13:21:03

标签: javascript html5 browser color-picker

有没有人知道使用javascript打开浏览器标准颜色选择器的方法,而不使用html字段?所以我想要一个javascript,点击html输入颜色字段完全相同。 巴特

3 个答案:

答案 0 :(得分:4)

您将不得不使用输入字段,您可以将其隐藏在页面之外。这里的问题是,颜色对话框需要在浏览器中单击才能打开颜色对话框。如果你只是调用click()

,它将无法工作

document.getElementById("xxx").addEventListener("click", function() {
  document.getElementById("c").focus();
  document.getElementById("c").value = "#FFCC00";
  document.getElementById("c").click();
});
.hidden {
  position: absolute;
  left: -10000px;
  top: auto;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
<input type="color" id="c" tabindex=-1 class="hidden">
<input type="button" id="xxx" value="Click Me!">

答案 1 :(得分:0)

这是一个很好的老&#34; hover-hack&#34;即使在MS Edge中也能解决的解决方案:

#include <iostream>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

int main(){

    cout<<"Sentence: ";
    string sentence;
    getline(cin,sentence);

    vector<string> my;
    int start=0;
    unsigned int end=sentence.size();

unsigned int temp=0;

while(temp<end){
    int te=sentence.find(" ",start);
    temp=te;
    my.push_back(sentence.substr(start, temp-start));
    start=temp+1;
}

unsigned int i;
    for(i=0 ; i<my.size() ; i++){

        cout<<my[i]<<endl;

    }

return 0;
}

然后将<input type="color" style='opacity:0;width:100px;position:absolute;'/> <button>clickme</button> 绑定到colro元素

https://jsfiddle.net/Lnzm0sry/2/

答案 2 :(得分:-2)

适用于支持输入类型=颜色(firefox,chrome和opera)的浏览器

<input type="file" id="filepicker" style="display:none" />
<script>
function pickfile() {
    var elem = document.getElementById('filepicker');
    if(elem)
        elem.click();
}
</script>

致电pickfile()