Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript IE未在div上显示背景色_Javascript_Jquery_Html_Css_Internet Explorer - Fatal编程技术网

Javascript IE未在div上显示背景色

Javascript IE未在div上显示背景色,javascript,jquery,html,css,internet-explorer,Javascript,Jquery,Html,Css,Internet Explorer,问题似乎是IE9-edge只阻止了我的javascript设置的一部分。虽然我可以删除安全设置以显示所需的效果,但我不能要求用户也这样做。我确信这里缺少了一些东西,因为代码的其余部分显示正确 $.each(data.results.audio, function(key, val) { var replace = val.mp3Url.replace('&', '&'); if (val.imgUrl) { status = "style='ba

问题似乎是IE9-edge只阻止了我的javascript设置的一部分。虽然我可以删除安全设置以显示所需的效果,但我不能要求用户也这样做。我确信这里缺少了一些东西,因为代码的其余部分显示正确

$.each(data.results.audio, function(key, val) {
   var replace = val.mp3Url.replace('&', '&');

   if (val.imgUrl) {
      status = "style='background:";
      switch (val.roadCondition) {
         case "1":
            status += "#4CAF50'"; // green
            break;
         case "2":
            status += "#FFEB3B'"; // yellow
            break;
         case "3":
            status += "#D32F2F'"; // red
            break
         case "4":
            status += "black'"; // black
            break;
         default:
            status += "white'"; // white
      }
   }

   var items2 = "<div class='bt_icon z-depth-5 hvr-round-corners'" + status + "><p class='shine waves-effect waves-green hvr-round-corners'><img id='" + key + "' class='majors ' src='" + val.imgUrl + "' alt='" + val.name + "' title='" + val.name + "' data-audio='" + replace + "' /></p></div>";
   $("#button_icons").append(items2);
   if (first && !isDone) {
      isDone = true;
      var audio = document.querySelector("audio");
      audio.src = replace;
      audio.load();
   }

   items.push(items2);

});
注意:背景色具有相同的效果


除了状态变量get set之外,其余代码都可以正常工作。Chrome、Firefox和Safari都能正确显示。但在IE上,上面的状态代码似乎从未被注入。它不会出现在开发工具中的dom中。要显示所有代码,唯一的方法是将安全设置放到介质中,然后重新加载页面。有任何解释/修复吗?

结果表明答案在IE兼容性的meta标签中。当IE运行不安全的intranet内容时,它默认进入兼容模式。这就是我所拥有的:

<meta http-equiv="X-UA-Compatible" content="IE=EDGE; IE=9; IE=8"/>
我将其改为:

<meta http-equiv="X-UA-Compatible" content="IE=EDGE"/>
这里有一个很好的解释,解释为什么这会导致我的问题:

IE可能需要在属性值周围加上双引号,以便应用它们。输出被解释为双引号。至少就我所知,在chrome、firefox和Safari的DOM中。好主意。不应该内联的类和样式。。。彼此接触,中间没有空隙。这当然足以将IE淘汰。与其将字符串附加在一起,不如使用jQuery的函数:jQuery.addClassbt_icon.cssbackground,status.append…-这将有助于避免混合引号,处理时髦的字符等。间距不重要,但是固定的。我将使用jQuery函数重写items2,看看这是否能修复它。请继续关注。这已经让我好几次了——让我发疯。