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

时间:2010-10-15 14:07:34

标签: 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>

是否有可能以符合XHTML标准的方式执行此操作?根据{{​​3}},脚本标记的所有属性都具有非常特定的功能。但是有解决方法吗?

我们的想法是将标签作为XML元素拿起并在它到达浏览器之前将它们放在服务器级别的其他页面中,因此我需要在页面的实际XML中使用特殊标记。在页面加载后,在浏览器级别使用Javascript添加它将无法正常工作。

有什么想法吗?


修改

为了符合标准,我不能使用HTML5。我试图遵守的整个系统是XHTML 1.0。

现在我已经有时间考虑它,我认为在脚本的src中添加GET变量或锚点可能就是这样。例如,代替前面的示例,执行

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

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

我现在就试试。

4 个答案:

答案 0 :(得分:0)

如果您使用的是HTML5,则可以执行以下操作:

<script data-special='true'>
</script>

它会验证。但是,除了验证失败之外,您可以放弃在标签上放置任意属性,它通常会起作用。使用“数据 - ”HTML5约定是一种安全的方法,因为你有0%的几率意外触发一些奇怪的行为。

请注意,对于HTML5,您不需要“type”属性,事实上它在时髦的Javascript圈子中已被弃用。

答案 1 :(得分:0)

使用data- * attributes ....它们符合标准:

<script data-foo="bar">

答案 2 :(得分:0)

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

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

  • 围绕它标记标记以将其标记为特殊标记(完全符合标准,适用于所有浏览器,但可能不适合您的检查)
  • 遵守标准并创建自己的DTD,这将有点打破IE支持
  • 忽略标准,只添加一些属性(除了W3验证器之外没人会真正关心)

如果您选择最后一个选项,我建议您使用id属性。 script标签虽然不支持,但htmlxhtml一般都支持,因此浏览器不会过多关注它,大多数验证者都不会关心。< / p>

答案 3 :(得分:0)

很长一段时间后我回头看了这篇文章。这只是说我在编辑中写的内容确实有效并符合标准。