Javascript 字段中的值在页面刷新时变大

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."

所以在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.");
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