1

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

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

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

是否有可能以符合 XHTML 标准的方式做到这一点?根据http://www.w3schools.com/tags/tag_script.asp,脚本标签的所有属性都有非常具体的功能。但是有解决方法吗?

这个想法是在到达浏览器之前将标签作为 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

4 回答 4

0

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

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

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

请注意,在 HTML5 中,您不需要“type”属性,实际上它在流行的 Javascript 圈子中已被弃用。

于 2010-10-15T14:10:24.300 回答
0

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

<script data-foo="bar">
于 2010-10-15T14:12:02.527 回答
0

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

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

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

如果您选择最后一个选项,我建议使用该id属性。虽然不支持script标签,但通常都支持,html因此xhtml浏览器不会太在意它,大多数验证器也不会关心。

于 2010-10-15T14:13:50.307 回答
0

很久以后我再看这篇文章。这只是说我在编辑中写的内容确实有效并且符合标准。

于 2012-03-02T17:40:00.780 回答