JavaScript、Doctype和Firefox

JavaScript、Doctype和Firefox,javascript,validation,firefox,doctype,Javascript,Validation,Firefox,Doctype,我有 功能测试 函数doFunction(towindow) { towindow.value='2'; } doFunction 这是行不通的。单击该按钮时,不会发生任何事情 如果删除,则所有新网页都需要doctype。您没有将页面作为XHTML提供,因此使用现在的doctype毫无意义。使用新的浏览器是因为它可以让所有浏览器回到IE6的标准模式,并且更简短、更容易记忆 Firefox10是个古董,我不知道你为什么认为有人会使用它。别理它。目前的版本是21 因此,只需将前两行更改为

我有


功能测试
函数doFunction(towindow)
{
towindow.value='2';
}   

doFunction
这是行不通的。单击该按钮时,不会发生任何事情


如果删除
,则所有新网页都需要doctype。您没有将页面作为XHTML提供,因此使用现在的doctype毫无意义。使用新的浏览器是因为它可以让所有浏览器回到IE6的标准模式,并且更简短、更容易记忆<代码>

Firefox10是个古董,我不知道你为什么认为有人会使用它。别理它。目前的版本是21

因此,只需将前两行更改为这一行,即可在当前版本的Chrome和Firefox中使用:


没有看我


另外,删除元元素。这仅适用于正在查看保存到桌面而不是通过internet的页面的用户(除非您需要)。此外,脚本标记的type属性不再需要它。

所有新网页都需要doctype。您没有将页面作为XHTML提供,因此使用现在的doctype毫无意义。使用新的浏览器是因为它可以让所有浏览器回到IE6的标准模式,并且更简短、更容易记忆<代码>

Firefox10是个古董,我不知道你为什么认为有人会使用它。别理它。目前的版本是21

因此,只需将前两行更改为这一行,即可在当前版本的Chrome和Firefox中使用:


没有看我


另外,删除元元素。这仅适用于正在查看保存到桌面而不是通过internet的页面的用户(除非您需要)。此外,脚本标记的type属性不再需要了。

问题不在于DOCTYPE;可能是Firefox10(顺便说一句,它现在已经很老了)根据DOCTYPE对代码进行了不同的解释,但真正的问题是Javascript

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

<!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>

函数doFunction(towindowId)
{
var towindow=document.getElementById(towindowId);
towindow.value='2';
}   
...
doFunction
此外,您应该始终在Firefox的错误控制台中检查Javascript错误-我在Firefox 10中测试了您的原始代码,得到错误“error:toWindowId未定义”


仅供参考,很少需要XHTML(严格模式或其他模式);您可能只想考虑常规HTML5 DOCTYPE,<代码> <代码>,除非您有特定的需要XHTML的原因。请参阅本文:。还请注意,W3Schools信息通常与当前趋势和实践不符

问题不在于DOCTYPE;可能是Firefox10(顺便说一句,它现在已经很老了)根据DOCTYPE对代码进行了不同的解释,但真正的问题是Javascript

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

<!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>

函数doFunction(towindowId)
{
var towindow=document.getElementById(towindowId);
towindow.value='2';
}   
...
doFunction
此外,您应该始终在Firefox的错误控制台中检查Javascript错误-我在Firefox 10中测试了您的原始代码,得到错误“error:toWindowId未定义”


仅供参考,很少需要XHTML(严格模式或其他模式);您可能只想考虑常规HTML5 DOCTYPE,<代码> <代码>,除非您有特定的需要XHTML的原因。请参阅本文:。还请注意,W3Schools信息通常与当前趋势和实践不符

@conceptdeluxe如果你想否决我,因为你被否决了,因为你的代码完全是胡说八道和过时的,没关系,我不在乎,但你的答案是错误的,错误的和误导性的;更不用说古董了。不,我不赞成你,因为你没有意识到他想用FF10,你只是说它是古董,它在最新的FF中工作。。。它在最新的FF中起作用,这是我已经说过的(之前我也没有说到这一点)我没有滥用它——你的回答根本不是解决问题的办法all@conceptdeluxe你显然不明白我想表达的观点,因为这对像你这样显然不知道现代网络如何工作的新手来说是一个很有帮助的建议。如果你因为你的代码是完整的,所以想投我的反对票,那你就要投我的反对票胡说八道和过时,没关系,我不在乎,但你的回答是错误的、虚假的和误导性的;更不用说古董了。不,我不赞成你,因为你没有意识到他想用FF10,你只是说它是古董,它在最新的FF中工作。。。它在最新的FF中起作用,这是我已经说过的(之前我也没有说到这一点)我没有滥用它——你的回答根本不是解决问题的办法all@conceptdeluxe你显然不明白我想表达的观点,因为这对像你这样显然不知道现代网络如何运作的新手来说是很有帮助的建议。你是不是对任何不适合你的答案投了反对票?你只能否决你认为很糟糕或没有建设性的答案。否决所有不适合你的答案是不好的;只要选对你有帮助的就行了。@MattBrowne这是周末,所有的业余爱好者都出去了。这就是我周末很少来这里的原因。@Rob谢谢你的邀请