Javascript 字段中的值在页面刷新时变大
所以在Firefox中,当我刷新页面时,十六进制值会不断增加。像这样 正如你所看到的,这不是一个正确的十六进制。只有在Firefox中只刷新时才会发生这种情况。不输入URL并按enter键。这是密码。我想这是代码被放入字段的地方Javascript 字段中的值在页面刷新时变大,javascript,jquery,html,css,firefox,Javascript,Jquery,Html,Css,Firefox,所以在Firefox中,当我刷新页面时,十六进制值会不断增加。像这样 正如你所看到的,这不是一个正确的十六进制。只有在Firefox中只刷新时才会发生这种情况。不输入URL并按enter键。这是密码。我想这是代码被放入字段的地方 console.log("Here are all the colors that have been generated since you loaded the page. \nAnd ignore any warnings, thats normal."
console.log("Here are all the colors that have been generated since you loaded the page. \nAnd ignore any warnings, thats normal.");
var r = $(".r");
var g = $(".g");
var b = $(".b");
r.val(r.val() + "255");
g.val(g.val() + "255");
b.val(b.val() + "255");
function setColor(color) {
var blackWhite = parseInt(color, 16) > 0xffffff / 2 ? 'black' : 'white';
document.body.style.backgroundColor = "#" + color;
document.body.style.color = blackWhite;
$('input').css({
borderColor: blackWhite,
color: blackWhite
});
$('a').css({
color: blackWhite,
color: blackWhite
});
console.log("#" + color);
$('.hex').val(color);
function hex2rgb(hex) {
var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
return result ? {
r: parseInt(result[1], 16),
g: parseInt(result[2], 16),
b: parseInt(result[3], 16)
} : null;
}
$('.r').val(hex2rgb(color).r);
$('.g').val(hex2rgb(color).g);
$('.b').val(hex2rgb(color).b);
}
$(document).ready(function () {
$(document).keydown(function (e) {
if (e.keyCode == '32') {
setColor(Math.random().toString(16).slice(2, 8));
$(".dir").css("visibility", "hidden");
}
});
$('.hex').keyup(function () {
setColor($(this).val().replace(/^#+/i, ''));
});
});
function update() {
var red = parseInt($(".r").val(), 10);
var green = parseInt($(".g").val());
var blue = parseInt($(".b").val());
red = red || 255;
green = green || 255;
blue = blue || 255;
var rgb = RGB2HTML(red, green, blue);
$(".hex").val(rgb);
$("body").css("background", "#" + rgb);
}
function hex(num) {
var ret = num.toString(16);
if (ret.length < 2) {
ret = "0" + ret;
}
return ret;
}
function RGB2HTML(red, green, blue) {
return hex(red) + hex(green) + hex(blue);
}
$(function () {
$('.r, .g, .b').keyup(update);
update();
});
$('.newclass').click(function () {
$('.hex').val('');
$('.r').val('');
$('.g').val('');
$('.b').val('');
$("body").css("background", "#fff");
$("body").css("color", "black");
$(".hex").css("border", "3px solid black");
$(".hex").css("color", "black");
$(".r").css("border", "3px solid black");
$(".r").css("color", "black");
$(".g").css("border", "3px solid black");
$(".g").css("color", "black");
$(".b").css("border", "3px solid black");
$(".b").css("color", "black");
$("a").css("color", "black");
});
console.log(“以下是加载页面后生成的所有颜色。\n忽略任何警告,这很正常。”);
var r=$(“.r”);
var g=$(“.g”);
var b=$(“.b”);
r、 val(r.val()+“255”);
g、 val(g.val()+“255”);
b、 val(b.val()+“255”);
函数setColor(颜色){
var blackWhite=parseInt(color,16)>0xffffff/2?'black':'white';
document.body.style.backgroundColor=“#”+颜色;
document.body.style.color=黑白;
$('input').css({
边框颜色:黑白,
颜色:黑白
});
$('a').css({
颜色:黑白,
颜色:黑白
});
console.log(“#”+颜色);
$('.hex').val(颜色);
函数hex2rgb(hex){
var result=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(十六进制);
返回结果{
r:parseInt(结果[1],16),
g:parseInt(结果[2],16),
b:parseInt(结果[3],16)
}:null;
}
$('.r').val(hex2rgb(color).r);
$('.g').val(hex2rgb(color.g);
$('.b').val(hex2rgb(color.b));
}
$(文档).ready(函数(){
$(文档).keydown(函数(e){
如果(e.keyCode=='32'){
setColor(Math.random().toString(16).slice(2,8));
$(“.dir”).css(“可见性”、“隐藏”);
}
});
$('.hex').keyup(函数(){
setColor($(this.val().replace(/^#+/i,');
});
});
函数更新(){
var red=parseInt($(“.r”).val(),10);
var green=parseInt($(“.g”).val());
var blue=parseInt($(“.b”).val());
红色=红色| | 255;
绿色=绿色| | 255;
蓝色=蓝色| | 255;
var rgb=RGB2HTML(红色、绿色、蓝色);
$(“.hex”).val(rgb);
$(“body”).css(“背景”、“#”+rgb);
}
函数十六进制(num){
var ret=num.toString(16);
如果(返回长度<2){
ret=“0”+ret;
}
返回ret;
}
函数RGB2HTML(红色、绿色、蓝色){
返回十六进制(红色)+十六进制(绿色)+十六进制(蓝色);
}
$(函数(){
$('.r、.g、.b').keyup(更新);
更新();
});
$('.newclass')。单击(函数(){
$('.hex').val('');
$('.r').val('');
$('.g').val('');
$('.b').val('');
$(“body”).css(“背景”,“#fff”);
$(“body”).css(“颜色”、“黑色”);
$(“.hex”).css(“边框”,“3px纯黑色”);
$(“.hex”).css(“颜色”、“黑色”);
$(“.r”).css(“边框”,“3倍纯黑”);
$(“.r”).css(“颜色”、“黑色”);
$(“.g”).css(“边框”,“3倍纯黑”);
$(“.g”).css(“颜色”、“黑色”);
$(“.b”).css(“边框”,“3px纯黑”);
$(“.b”).css(“颜色”、“黑色”);
$(“a”).css(“颜色”、“黑色”);
});
我已检查了您的代码并在本地服务器上进行了测试。这似乎是一个带有JSBin的firefox错误。它应该在你的网站上运行良好。我在jsfiddle
上使用了相同的代码,它在foreox中工作没有任何问题
演示
你为什么这样做:
r.val(r.val() + "255");
g.val(g.val() + "255");
b.val(b.val() + "255");
而不是这个
r.val("255");
g.val("255");
b.val("255");
颜色设置在哪里?此外,它可能是每次都在重新处理的表单提交。我们需要看到更多的代码来正确定位问题。所有的代码都在演示中。但我现在会把它添加到帖子中@矢量都设置好了。我在你的代码r.val(r.val()+“255”)中添加了它@vectori;g、 val(g.val()+“255”);b、 val(b.val()+“255”)代码>您正在执行加法,而不是串联,您知道吗?是的,我知道if@Vector