首页 > 解决方案 > JavaScript 过早停止

问题描述

提前感谢您提供的任何帮助。

我的任务是整理公司网站。我已经完成了大部分工作,但是却卡在了一段 JavaScript 上。

该网站有一份问卷,其中包含三类答案。从分数我绘制一个三角形。我写了一个函数,它将返回我想要的计算。作为对该函数的测试,我可以将计算的变量直接写入弹出窗口。

我创建了另一个函数,然后在弹出窗口中使用 CANVAS() 绘制三角形。作为测试新功能是否有效的测试,我输入了代码以尝试创建包含结果的弹出窗口。它会创建弹出窗口但不会写入它,就好像代码在创建弹出窗口后停止一样。谁能告诉我我做错了什么?

问候德鲁

代码:

    <script type="text/javascript">

            function myFunction() 
            {                   
                function calcD() 
                {
                var D1 = parseInt(document.forms.form1.elements.RadioGroup1.value);
                var D2 = parseInt(document.forms.form1.elements.RadioGroup4.value);
                var D3 = parseInt(document.forms.form1.elements.RadioGroup7.value);
                var D4 = parseInt(document.forms.form1.elements.RadioGroup10.value);
                var Ds  = D1 + D2 + D3 + D4;
                return Ds;
                }

                function calcI() 
                {
                var I1 = parseInt(document.forms.form1.elements.RadioGroup2.value);
                var I2 = parseInt(document.forms.form1.elements.RadioGroup5.value);
                var I3 = parseInt(document.forms.form1.elements.RadioGroup8.value);
                var I4 = parseInt(document.forms.form1.elements.RadioGroup11.value);
                var Is  = I1 + I2 + I3 + I4;
                return Is;
                }

                function calcB() 
                {
                var B1 = parseInt(document.forms.form1.elements.RadioGroup3.value);
                var B2 = parseInt(document.forms.form1.elements.RadioGroup6.value);
                var B3 = parseInt(document.forms.form1.elements.RadioGroup9.value);
                var B4 = parseInt(document.forms.form1.elements.RadioGroup12.value);
                var Bs  = B1 + B2 + B3 + B4;
                return Bs;
                }

                var X = 396.4;
                var Y = 250;
                var coS30 = 0.866025403784439;
                var siN30m = -0.5;
                var siN30p = 0.5;
                var Dx = X;
                var Dy = calcD() + Y;
                var Bx = X - (calcB()*coS30);
                var By = Y + (calcB()*siN30m);
                var Ix = X + (calcI()*coS30);
                var Iy = Y + (calcI()*siN30p);
                var Xs = (Dx + Bx + Ix)/3;
                var Ys = (Dy + By + Iy)/3;
            /*
                var myWindow1 = window.open("","MsgWindow","resizable,height=700,width=793");

                myWindow1.document.write('var X = ' + X);
                myWindow1.document.write('; var Y = ' + Y);
                myWindow1.document.write('; var coS30 = ' + coS30);
                myWindow1.document.write('; var siN30m = ' + siN30m);
                myWindow1.document.write('; var siN30p = ' + siN30p);
                myWindow1.document.write('; var Dx = ' + Dx);
                myWindow1.document.write('; var Dy = ' + Dy);
                myWindow1.document.write('; var Bx = ' + Bx);
                myWindow1.document.write('; var By = ' + By);
                myWindow1.document.write('; var Ix = ' + Ix);
                myWindow1.document.write('; var Iy = ' + Iy);
                myWindow1.document.write('; var Xs = ' + Xs);
                myWindow1.document.write('; var Ys = ' + Ys);
                myWindow1.document.close();
            */
        }

    </script>

    <script type="text/javascript">

                function draw() {

                    var myWindow1 = window.open("","MsgWindow","resizable,height=700,width=793");

                    myWindow1.document.write('var X = ' + X);
                    myWindow1.document.write('; var Y = ' + Y);
                    myWindow1.document.write('; var coS30 = ' + coS30);
                    myWindow1.document.write('; var siN30m = ' + siN30m);
                    myWindow1.document.write('; var siN30p = ' + siN30p);
                    myWindow1.document.write('; var Dx = ' + Dx);
                    myWindow1.document.write('; var Dy = ' + Dy);
                    myWindow1.document.write('; var Bx = ' + Bx);
                    myWindow1.document.write('; var By = ' + By);
                    myWindow1.document.write('; var Ix = ' + Ix);
                    myWindow1.document.write('; var Iy = ' + Iy);
                    myWindow1.document.write('; var Xs = ' + Xs);
                    myWindow1.document.write('; var Ys = ' + Ys);
                    myWindow1.document.close();


            /*  
                var ctx = myWindow1.document.getElementById('canvas').getContext('2d');
                var img = new Image();

                img.onload = function() {
                ctx.drawImage(img, 0, 0);
                ctx.beginPath();
                ctx.moveTo(Dx, Dy);
                ctx.lineTo(Bx, By);
                ctx.lineTo(Ix, Iy);
                ctx.fill();
                ctx.stroke();
                };
                img.src = "img/triangle.png";
            */
            };

    </script>

如果需要,变量值:

var X = 396.4; 

var Y = 250;
var coS30 = 0.866025403784439;
var siN30m = -0.5;
var siN30p = 0.5;
var Dx = 396.4;
var Dy = 250;
var Bx = 396.4;
var By = 250;
var Ix = 396.4;
var Iy = 250;
var Xs = 396.3999999999999;
var Ys = 250;

标签: javascripthtmlcanvaspopup

解决方案


推荐阅读