加载时的html javascript调用函数

加载时的html javascript调用函数,javascript,html,Javascript,Html,我想做一些像: 1. 1296 2. 4624 Square root both numbers and add the result! Answer: ________ [Check button] 如果答案正确,请打开somewhere.html 我制作了这个脚本: <html> <head> <script language="javascript"> window.onload=calc; funct

我想做一些像:

1. 1296
2. 4624

Square root both numbers and add the result! 
Answer: ________
[Check button]
如果答案正确,请打开
somewhere.html

我制作了这个脚本:

<html>
<head>
    <script language="javascript">
        window.onload=calc; 

        function calc() {
            var num1, num2, sqNum1, sqNum2, randomNum, sum, ans;
            num1=Math.floor(Math.random()*90)+10;
            num2=Math.floor(Math.random()*90)+10;
            sqNum1=num1*num1;
            sqNum2=num2*num2;
            sum=num1+num2;
            document.write("1. " + sqNum1 + "<br />");
            document.write("2. " + sqNum2 + "<br />");
            document.write("<br />");
        }

        function checkAns(form) {
            if (form.ans.value==sum) {
                location="somewhere.html";
            } else {
                alert ("Wrong answer!");
            }
        }
    </script>
</head>

<body>
    Square root both numbers and add the result! <br />
    <form name='question'>
        Answer: <input name='ans' type='password'> <br />
        <input type='button' value='Check' onClick='checkAns(this.form)'>
    </form>
</body>
</html>

这个脚本有什么问题

调用
加载
函数时,文档将处于关闭状态

您无法在关闭状态下
写入
,因此调用
写入
将为您调用
打开

调用
open
将删除现有文档

新内容将写入新文档


使用(
createElement
appendChild
和friends)编辑现有文档。

调用
load
函数时,文档将处于关闭状态

您无法在关闭状态下
写入
,因此调用
写入
将为您调用
打开

调用
open
将删除现有文档

新内容将写入新文档


使用(
createElement
appendChild
和friends)编辑现有文档。

您需要以下内容:

<html>
<head>
    <script language="javascript">
        function calc() {
            var num1, num2, sqNum1, sqNum2, randomNum, sum, ans;
            num1=Math.floor(Math.random()*90)+10;
            num2=Math.floor(Math.random()*90)+10;
            sqNum1=num1*num1;
            sqNum2=num2*num2;
            sum=num1+num2;
            document.getElementById("sum").value = sum;

            var question = document.getElementById("question");
            var numbers = document.getElementById("numbers");
            var br = document.createElement('br');
            var txt = document.createTextNode("1. " + sqNum1);
            numbers.appendChild(txt);
            numbers.appendChild(br);
            var txt = document.createTextNode("2. " + sqNum2);
            numbers.appendChild(txt);
            txt.appendChild(question);
        }

        function checkAns(form) {

            if (document.getElementById("ans").value == document.getElementById("sum").value) {
                var newWin = open('somewhere.html','windowName','height=300,width=300');
            } else {
                alert ("Wrong answer!");
            }
        }
    </script>
</head>

<body onload="calc();">
    <form name='question'>
        <div id="numbers">
        </div>
        <br/>
        Square root both numbers and add the result! <br />
        <div id="question">
            Answer: <input id='ans' name='ans' type='password'> <br />
            <input type='button' value='Check' onClick='checkAns(this.form)'>
        </div>
        <input id='sum' type='hidden' value=''/>
    </form>
</body>
</html>

函数计算(){
变量num1、num2、sqNum1、sqNum2、randomNum、sum、ans;
num1=数学地板(数学随机()*90)+10;
num2=数学地板(数学随机()*90)+10;
sqNum1=num1*num1;
sqNum2=num2*num2;
总和=num1+num2;
document.getElementById(“sum”).value=sum;
var question=document.getElementById(“问题”);
var numbers=document.getElementById(“数字”);
var br=document.createElement('br');
var txt=document.createTextNode(“1.”+sqNum1);
数字。追加子项(txt);
数字。追加子项(br);
var txt=document.createTextNode(“2.”+sqNum2);
数字。追加子项(txt);
txt.appendChild(问题);
}
功能检查(表格){
if(document.getElementById(“ans”).value==document.getElementById(“sum”).value){
var newWin=open('somewhere.html','windowName','height=300,width=300');
}否则{
警惕(“回答错误!”);
}
}

求两个数字的平方根,然后将结果相加
回答:

这不是最好的答案,这是一种你可以用来跟随你的发展的方法

你需要这样的东西:

<html>
<head>
    <script language="javascript">
        function calc() {
            var num1, num2, sqNum1, sqNum2, randomNum, sum, ans;
            num1=Math.floor(Math.random()*90)+10;
            num2=Math.floor(Math.random()*90)+10;
            sqNum1=num1*num1;
            sqNum2=num2*num2;
            sum=num1+num2;
            document.getElementById("sum").value = sum;

            var question = document.getElementById("question");
            var numbers = document.getElementById("numbers");
            var br = document.createElement('br');
            var txt = document.createTextNode("1. " + sqNum1);
            numbers.appendChild(txt);
            numbers.appendChild(br);
            var txt = document.createTextNode("2. " + sqNum2);
            numbers.appendChild(txt);
            txt.appendChild(question);
        }

        function checkAns(form) {

            if (document.getElementById("ans").value == document.getElementById("sum").value) {
                var newWin = open('somewhere.html','windowName','height=300,width=300');
            } else {
                alert ("Wrong answer!");
            }
        }
    </script>
</head>

<body onload="calc();">
    <form name='question'>
        <div id="numbers">
        </div>
        <br/>
        Square root both numbers and add the result! <br />
        <div id="question">
            Answer: <input id='ans' name='ans' type='password'> <br />
            <input type='button' value='Check' onClick='checkAns(this.form)'>
        </div>
        <input id='sum' type='hidden' value=''/>
    </form>
</body>
</html>

函数计算(){
变量num1、num2、sqNum1、sqNum2、randomNum、sum、ans;
num1=数学地板(数学随机()*90)+10;
num2=数学地板(数学随机()*90)+10;
sqNum1=num1*num1;
sqNum2=num2*num2;
总和=num1+num2;
document.getElementById(“sum”).value=sum;
var question=document.getElementById(“问题”);
var numbers=document.getElementById(“数字”);
var br=document.createElement('br');
var txt=document.createTextNode(“1.”+sqNum1);
数字。追加子项(txt);
数字。追加子项(br);
var txt=document.createTextNode(“2.”+sqNum2);
数字。追加子项(txt);
txt.appendChild(问题);
}
功能检查(表格){
if(document.getElementById(“ans”).value==document.getElementById(“sum”).value){
var newWin=open('somewhere.html','windowName','height=300,width=300');
}否则{
警惕(“回答错误!”);
}
}

求两个数字的平方根,然后将结果相加
回答:

这不是最好的答案,这是您可以用来跟踪开发的一种方法

输出是正确的,但功能仍然不能正常工作,按下按钮后没有检查答案。无论如何,谢谢你的脚本,也许可以帮助我理解昆汀的解释。对不起,我想你只需要加载数字,我没有看到checkAns函数。我会检查输出是否正确,但功能仍然不能正常工作,按下按钮后没有检查答案。无论如何,谢谢你的脚本,也许可以帮助我理解昆汀的解释。对不起,我想你只需要加载数字,我没有看到checkAns函数。我将检查您将遇到的另一个问题是在
calc
函数中声明变量
sum
。当在函数内部用
var
声明变量时,其作用域仅限于该函数内部。了解有关JavaScript中作用域的更多信息。您将遇到的另一个问题是在
calc
函数中声明变量
sum
。当在函数内部用
var
声明变量时,其作用域仅限于该函数内部。了解有关JavaScript中作用域的更多信息。