Javascript 使用按钮OnClick=";执行document.write()时未定义;柜台;

Javascript 使用按钮OnClick=";执行document.write()时未定义;柜台;,javascript,html,Javascript,Html,我是编程新手,需要一些帮助,为什么document.write()不起作用,页面基本上崩溃了。。。有人能帮我吗 <!DOCTYPE html> <html> <head> </head> <script type="text/javascript"> function showText() { var x; var counter; if ( x === 0) { counter = 0; x = 1; } counter = cou

我是编程新手,需要一些帮助,为什么document.write()不起作用,页面基本上崩溃了。。。有人能帮我吗

<!DOCTYPE html>
<html>
<head>
</head>
<script type="text/javascript">

function showText() {
var x;
var counter;
if ( x === 0) {
counter = 0;
x = 1;
}
counter = counter + 1;
document.write("Times clicked: " + counter);
}


</script>
<body>
<script type="text/javascript">
showText();
</script>

<button onclick="showText();">Click Me!<button>


</body>
</html>

函数showText(){
var x;
var计数器;
如果(x==0){
计数器=0;
x=1;
}
计数器=计数器+1;
文件。写入(“点击次数:+计数器);
}
showText();
点击我!
避免使用
文档。编写

从MDN开发者网络中引用:

注意:作为
document。write
写入文档流,调用
document。在关闭(加载)的文档上write
会自动调用
文档。open
将清除文档

因此,基本上,您的问题是在页面加载后使用
document.write
:这将导致删除页面的全部内容并显示该字符串

此外,由于
count
变量是在
showText
函数内声明的,并且您试图在函数外访问它,因此代码无法工作,并遇到错误

解决方案 要使代码正常工作,您应该创建另一个元素,比如说一个
元素,并在其中显示文本。下面是一个正确页面的示例:

<!DOCTYPE html>
<html>
<head></head>
<body>
    <button id="btn">Click me!</button>
    <p id="txt">Times clicked: 0</p>

    <script type="text/javascript">
        function showText() {
            count++;
            text.textContent = "Times clicked: " + count;
        }

        var count = 0,
            button = document.getElementById("btn"),
            text = document.getElementById("txt");

        button.addEventListener("click", showText);
    </script>
</body>
</html>

点击我!
点击次数:0

函数showText(){ 计数++; text.textContent=“点击次数:”+计数; } 变量计数=0, button=document.getElementById(“btn”), text=document.getElementById(“txt”); 按钮。addEventListener(“单击”,显示文本);

使用
文档签出

。页面完成后,write()
将隐式销毁页面。它就是这样做的。您必须决定显示计数器的另一种方式。您还需要在showText之外声明变量。
document.write()
不受欢迎。当你知道它的功能并正确使用它时,使用它并没有什么错。@Juhana我错了,我认为它也被弃用了。IMHO(尤其是新手)仍然不是一个好的做法。当我尝试Marco Bonelli的解决方案,并尝试使用代码创建页面时,不知为什么它显示一个空白的白色屏幕。@NewProgram我添加了一个实时演示链接。我不知道你做错了什么,但我的解决方案是有效的,在这里检查一下:我完全复制了粘贴到记事本中的文本,并将扩展名重命名为html,在浏览器中启动,但它不起作用。