将某些Javascript块标记为“特殊”

将某些Javascript块标记为“特殊”,javascript,web-standards,standards-compliance,Javascript,Web Standards,Standards Compliance,出于某种复杂的原因,我需要将一些Javascript标记为特殊,如下所示: <script type="text/javascript" someattribute="special"> var special = "I'm special!"; </script> <script type="text/javascript" someattribute="special" src="special.js"> </script> 是否有可能

出于某种复杂的原因,我需要将一些Javascript标记为特殊,如下所示:

<script type="text/javascript" someattribute="special">
  var special = "I'm special!";
</script>

<script type="text/javascript" someattribute="special" src="special.js">
</script>
是否有可能以符合XHTML标准的方式实现这一点?根据,脚本标记的所有属性都具有非常特定的功能。但是有解决办法吗

其思想是在到达浏览器之前,将标记作为XML元素,并将它们放在服务器级别的另一个页面中,因此我需要页面实际XML中的特殊标记。在页面加载后,在浏览器级别使用Javascript添加它将不起作用

有什么想法吗

编辑:

为了符合标准,我不能使用HTML5。我试图遵从的整个系统是XHTML1.0

现在我已经有时间考虑了,我认为在脚本的src中添加一个GET变量或锚点就可以了。例如,与前面的示例不同,请执行以下操作

<script type="text/javascript" src="special.js?special"></script>


我现在就试试。

如果您使用的是HTML5,您可以这样做:

<script data-special='true'>
</script>
它会验证的。但是,除了验证失败之外,您还可以在标记上添加任意属性,这通常是可行的。使用数据HTML5约定是一种安全的方式,因为你有0%的几率意外触发一些奇怪的行为


请注意,使用HTML5时,您不需要type属性,事实上,在流行的Javascript圈子中,type属性已被弃用。

使用data-*属性。。。。它们符合标准:

<script data-foo="bar">

使用XHTML,您可以创建自己的DTD,使用自己的DTD,您可以轻松地向脚本标记添加额外的属性。然而因为你可能想在现实生活中的网站上使用它,所以这不会起作用,因为Internet Explorer不支持它

所以我认为这是你的选择:

在其周围环绕一个标记,将其标记为完全符合特殊标准,适用于所有浏览器,但可能不适用于您的检查 遵守标准,创建自己的DTD,这将在一定程度上打破IE支持 忽略这些标准,只需添加一些属性,W3验证程序之外的任何人都不会在意
如果选择最后一个选项,我建议使用id属性。虽然脚本标记不支持它,但html和xhtml通常都支持它,因此浏览器不会太在意它,大多数验证器也不会在意它。

我很长时间后会回顾这篇文章。这只是说我在编辑中所写的内容确实有效,并且符合标准。

是否有一个标签可以写在头上,或者写在身体上?这只适用于身体。在大脑内部,这有点困难。有什么原因你不能使用HTML5吗?如果您想使用XHTML,那么可以使用XHTML5。您甚至可以编写与通常编写XHTML 1.0相同的文档,只需使用HTML5 doctype,即使该doctype在技术上并不需要,因为XHTML没有quirksmode,因此可以安全地忽略doctype。是的,这是有原因的。该网站主要是XHTML1.0。很少有页面是动态的。该组织将大量精力放在使整个站点符合XHTML1.0并支持这一点上。他们不支持其他任何东西。这是一个非常大的组织,所以任何改变都是一件大事。如果带有HTML5的页面将其代码提升并插入到XHTML外部页面中,那么它可以工作,但会很混乱,并且内部代码本身无法可靠地进行测试。从长远来看,在XHTML中完成这一切更有意义。然而,使用GET变量完成了这项工作。
<script data-foo="bar">