Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
类型属性为元素的JavaScript问题_Javascript_Xhtml - Fatal编程技术网

类型属性为元素的JavaScript问题

类型属性为元素的JavaScript问题,javascript,xhtml,Javascript,Xhtml,只要不设置类型属性,我就可以让脚本运行。但是,如果没有type属性,我无法为XHTML验证页面。一旦我设置了它,我的错误消息就会消失,但随后脚本就无法运行。下面是一段简短的代码 <!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/xht

只要不设置类型属性,我就可以让脚本运行。但是,如果没有type属性,我无法为XHTML验证页面。一旦我设置了它,我的错误消息就会消失,但随后脚本就无法运行。下面是一段简短的代码

<!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" lang="en" xml:lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <title>John Whiteker's Home Page</title>
    <link rel="stylesheet" type="text/css" href="project.css" />

    <script><!-- This is my error saying that I need to set a type attribute -->
    function myFunction()
    {
        alert("Hello! I am an alert box!");
    }
    </script>

</head>

<body>

HTML5是允许您省略type属性并采用text/javascript的规范。每隔一个HTML版本,type属性都是必需的

您正在使用XHTML Doctype。如果要使用HTML5,请在顶部包含此Doctype:

<!DOCTYPE html>
来自MDN:如果缺少此属性,则脚本将被视为JavaScript,参考HTML5


参考资料:

HTML5是允许您省略type属性并采用text/javascript的规范。每隔一个HTML版本,type属性都是必需的

您正在使用XHTML Doctype。如果要使用HTML5,请在顶部包含此Doctype:

<!DOCTYPE html>
来自MDN:如果缺少此属性,则脚本将被视为JavaScript,参考HTML5


参考:

使用HTML5 doctype,不要指定类型属性,除非它们不是默认属性。另外,不要太担心验证。这对保持秩序很好,但你不需要


使用HTML5 doctype,不要指定类型属性,除非它们不是默认属性。另外,不要太担心验证。这对保持秩序很好,但你不需要


我已经在IE、FF和Chrome的最新稳定版本中对此进行了测试。脚本工作正常,并且是有效的XHTML1.0

关于脚本无法运行的原因,我唯一的猜测是因为没有调用函数。有两个简单的选择:

选择1

使用

例1:

<!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" lang="en" xml:lang="en">

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <title>John Whiteker's Home Page</title>
    <link rel="stylesheet" type="text/css" href="project.css" />
    <script type="text/javascript">
        //<![CDATA[
        <!--

        function myFunction() {
            alert("Hello! I am an alert box!");
        }

        //-->
        //]]>
    </script>
</head>

<body onload="myFunction()">

</body>

</html>
这两种方法都将生成有效的XHTML1.0Strict,脚本将正常运行。有关window.onload VS的更多信息,请查看这篇很棒的SO帖子 另外,在编写XHTML时,最好包括

//<![CDATA[
<!--
就在你的标签前

这一特定项目可能不需要它们,但需要一个。另见。也许你的教授会给你加分,因为他们:

干杯


Lord

我已经在IE、FF和Chrome的最新稳定版本中对此进行了测试。脚本工作正常,并且是有效的XHTML1.0

关于脚本无法运行的原因,我唯一的猜测是因为没有调用函数。有两个简单的选择:

选择1

使用

例1:

<!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" lang="en" xml:lang="en">

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    <title>John Whiteker's Home Page</title>
    <link rel="stylesheet" type="text/css" href="project.css" />
    <script type="text/javascript">
        //<![CDATA[
        <!--

        function myFunction() {
            alert("Hello! I am an alert box!");
        }

        //-->
        //]]>
    </script>
</head>

<body onload="myFunction()">

</body>

</html>
这两种方法都将生成有效的XHTML1.0Strict,脚本将正常运行。有关window.onload VS的更多信息,请查看这篇很棒的SO帖子 另外,在编写XHTML时,最好包括

//<![CDATA[
<!--
就在你的标签前

这一特定项目可能不需要它们,但需要一个。另见。也许你的教授会给你加分,因为他们:

干杯


上帝

谢谢你,伊恩。我可以求助于你的解决方案,但这是大学作业。讲师想要包含javascript元素的XHTML1.0严格doctype,站点必须通过验证。@JohnWhiteker没关系,我不是想说服你做什么。我只是说-如果不想包含type属性,就必须使用HTML5 doctype。你好像在问为什么它不起作用,所以我解释说。你可以做你想做的任何事情,但是Doctype是没有typeIan它就不能工作的原因,我非常感激。我只是想知道是否有办法让它在我所受的限制下运行。如果我插入典型的javascript类型属性,页面将进行验证,但脚本无法运行。@JohnWhiteker我忍不住认为您发布的javascript不是全部。您现在拥有的代码应该可以正常工作,因此您可能需要发布更多信息来确定问题所在。这很奇怪,虽然它要么验证了,要么成功了,但不是两者都是…谢谢伊恩。我可以求助于你的解决方案,但这是大学作业。讲师想要包含javascript元素的XHTML1.0严格doctype,站点必须通过验证。@JohnWhiteker没关系,我不是想说服你做什么。我只是说-如果不想包含type属性,就必须使用HTML5 doctype。你好像在问为什么它不起作用,所以我解释说。你可以做你想做的任何事情,但是Doctype是没有typeIan它就不能工作的原因,我非常感激。我只是想知道是否有办法让它在我所受的限制下运行。如果我插入典型的javascript类型属性,页面将进行验证,但脚本无法运行。@JohnWhiteker我忍不住认为您发布的javascript不是全部。您现在拥有的代码应该可以正常工作,因此您可能需要发布更多信息来确定问题所在。真奇怪
虽然它要么验证了,要么成功了,但不是两者都成功了……谢谢你。我可以求助于你的解决方案,但这是大学作业。讲师需要包含javascript元素的XHTML1.0严格doctype,并且站点必须通过验证。看来她所要求的可能不是100%可能。谢谢巴恩。我可以求助于你的解决方案,但这是大学作业。讲师需要包含javascript元素的XHTML1.0严格doctype,并且站点必须通过验证。看来她所要求的可能不是100%可能。非常感谢您提供详细的解决方案,塔宾顿勋爵。您的推荐工作完美无瑕,使我能够保持在稍微过时的XHTML类和讲师指定的参数范围内:你们太棒了!有效的XML永远不需要CDATA。如果您希望在任何文本节中包含对XML具有特殊含义的字符,例如,或&,而不将实体转义为,&;,则使用CDATA;。由于Javascript代码通常包含这些字符,通常最好将内联脚本封装在实体标记中,但您仍然可以编写完全有效的XHTML脚本,而无需CDATA。非常感谢您提供的详细解决方案。您的推荐工作完美无瑕,使我能够保持在稍微过时的XHTML类和讲师指定的参数范围内:你们太棒了!有效的XML永远不需要CDATA。如果您希望在任何文本节中包含对XML具有特殊含义的字符,例如,或&,而不将实体转义为,&;,则使用CDATA;。由于Javascript代码通常包含这些字符,所以通常最好将内联脚本封装在实体标记中,但您仍然可以编写完全有效的XHTML脚本,而无需CDATA。