javascript - Microsoft Edge Javascript 中的语法错误

标签 javascript hex microsoft-edge

我有一个 Javascript,可以为 Canvas 元素创建线性渐变并设置一些颜色停止点。

该脚本在 Chrome 和 Firefox 中按预期工作,但在 Edge(以及 IE)中给我一个“语法错误”。

错误出现在运行时,对我来说,这意味着我的脚本在语法上是正确的,但底层实现中可能存在错误(在本例中是渐变的 setColorStop 函数,但这只是猜测)。

这是一个精简版本:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <script>
            function loader() {
                var ctx = document.getElementById("canvas1").getContext('2d');      
                var left = 0;
                var right = 199;
                var gradient = ctx.createLinearGradient(left, 0, right, 0);
                var a = 20 ;
                var b = 2 ;
                var c = "#17a2b8" ;
                var d = "#80808080" ;
                console.log( a,b,c,d ) ;
                gradient.addColorStop( 0, c ) ;
                console.log( "done 1" ) ;
                gradient.addColorStop( ( a - ( b - 1 ) ) / a, c ) ;
                console.log( "done 2" ) ;
                gradient.addColorStop( ( a - ( b - 1 ) ) / a, d ) ; // <== SyntaxError here!
                console.log( "done 3" ) ;
                gradient.addColorStop( 1, d ); 
                console.log( "done 4" ) ;
            }
        </script>
    </head>
    <body onload="loader()">
        <canvas id="canvas1" sytle="width:200px;height:200px"></canvas>
    </body>
</html>

这是 Edge 的控制台输出:

Console output from Edge

...以及 Chrome(用于比较):

Console output from Chrom

我的问题:为什么会发生这种情况?我该如何解决这个问题?

最佳答案

这很可能是由于 #rrggbbaa某些版本的 Edge 不支持十六进制颜色表示法 ( var d = "#80808080"; )。

更新它或使用 rgba(255, 255, 255, 1)符号

关于javascript - Microsoft Edge Javascript 中的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60898998/

相关文章:

javascript - 具有需要切换 jQuery 的隐藏行的表

JavaScript 游戏框架

date - 如何在Hive中将十六进制日期值转换为日期值

jQuery append() 到新窗口中不适用于 Microsoft Edge

tabs - 微软边缘: local/session storage are not working in a new tab

css - MS Edge 错误地显示幻灯片和下面的内容

javascript - 如何在 Mocha 测试用例中发送 header ('Authorization' ,'Bearer token' )

javascript - 带有分块请求正文的 XmlHttpRequest?

mysql - 显示十六进制而不是文本的 View

java - 在 Java 中将十进制数转换为十六进制字符串失败