gpt4 book ai didi

JavaScript、文档类型和 Firefox

转载 作者:行者123 更新时间:2023-11-30 10:30:16 25 4
gpt4 key购买 nike

我有

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Function test</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></meta>
<script type="text/javascript">
function doFunction(towindow)
{
towindow.value='2';
}
</script>
</head>
<body>
<div>
<textarea id="outputarea" rows="6" cols="60"></textarea> <br />
<button type="button" onclick="doFunction(outputarea)">doFunction </button>
</div>
</body>
</html>

这是行不通的。单击该按钮时,什么也不会发生。

如果我删除 <!DOCTYPE ....然后一切正常。

我想保留 DOCTYPE 以供验证,我从 W3schools website 中找到了这个确切的声明.该代码确实有效。我正在使用 Firefox 10.0。当我使用 Chrome 27.0.1453.116 时,问题没有发生。另外,当我使用 Explorer 10 时不会出现此问题。

似乎 JavaScript、DOCTYPE 声明和 Firefox 之间存在问题。

问题是什么?我该如何解决这个问题?

(我看到其他问题(例如参见 this-1this-2this-3this-4 )有一些相同的问题,但它们没有帮助)

最佳答案

问题不在于DOCTYPE;可能是 Firefox 10(顺便说一句,现在已经很老了)根据 DOCTYPE 以不同方式解释代码,但真正的问题是您的 Javascript。

您的代码 onclick="doFunction(outputarea)"不是真的正确;一些浏览器会猜测您想要 ID 为 outputarea 的元素但这不是标准行为。你应该做这样的事情:

<script type="text/javascript">
function doFunction(towindowId)
{
var towindow = document.getElementById(towindowId);
towindow.value='2';
}
</script>
...
<button type="button" onclick="doFunction('outputarea')">doFunction </button>

此外,您应该始终在 Firefox 的错误控制台中检查 Javascript 错误 - 我在 Firefox 10 中测试了您的原始代码并收到错误“错误:toWindowId 未定义”。

仅供引用,很少需要 XHTML(严格模式或其他模式);你可能只想考虑常规的 HTML5 文档类型,<!DOCTYPE html> ,除非您有特殊原因需要 XHTML。参见这篇文章:http://www.webdevout.net/articles/beware-of-xhtml .另请注意,W3Schools 信息通常与当前趋势和实践不同步。

关于JavaScript、文档类型和 Firefox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17256670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com