Javascript 使用按钮OnClick=";执行document.write()时未定义;柜台;
我是编程新手,需要一些帮助,为什么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
<!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,在浏览器中启动,但它不起作用。