上次我發現這段代碼包含在一些 教程中。它只是在定義的範圍內打印數字。Javascript「write」as function name and more
<!DOCTYPE html>
<html lang="pl">
<html>
<head>
<meta charset="utf-8" />
<script type="text/javascript">
function wypisz()
{
var liczba1 = document.getElementById("pole1").value;
var liczba2 = document.getElementById("pole2").value;
var napis = "";
for (i=liczba1; i<=liczba2; i++)
{
napis = napis + i + " ";
}
document.getElementById("wynik").innerHTML = napis;
}
</script>
</head>
<body>
<input type="text" id="pole1" />
<input type="text" id="pole2" />
<input type="submit" value="Pokaż" onclick="wypisz()"/>
<div id="wynik"></div>
</body>
</html>
- 當我改變函數名「wypisz()」到「寫()」,我按下按鈕時,頁面變成白色和永無止境的開始裝載。 是否將「寫入」保留爲全局函數名稱?我看不出在這裏: JavaScript Reserved Words
- 在相同的代碼,當我定義提起<在第二個第一輸入文本和11-19>的< 2-9範圍>,什麼都不會發生。但是,當我在第一個數字前加零時,它就起作用了。這是什麼意思?
這是我的解決方法(我增加了一個功能,從上往下數):
<head>
<meta charset="utf-8" />
<script type="text/javascript">
function _write()
{
var number1 =document.getElementById("field1").value;
var number2 =document.getElementById("field2").value;
var tab=new Array();
var number=Math.abs(number2-number1);
if(number1<10 && number1>1) number1=0+number1;//add zero
for(i=0;i<=number;i++)
{
tab.push(number1);
if(number1<number2)
++number1;
else
--number1; //bigger-smaller
}
document.getElementById("result").innerHTML=tab.join(" ");
}
</script>
</head>
<body>
<input type="text" id="field1" />
<input type="text" id="field2" />
<input type="submit" value="SHOW" onclick="_write()"/>
<div id="result"></div>
</body>
心想: 「問題解決」。然後我看到了這一點:
'寫()'似乎調用'document.write()的',而不是你的自己的功能。 – Barmar
@Barmar我永遠無法找到它在spec中寫入的位置,但_JavaScript_寫入的屬性具有'__proto__ === Object.prototype'和一些行爲,就像'with(this){/ * code * /} ',還有更多的東西,我現在也不能確定 –