可以在<head>标签之前添加<script>标签吗?

3
我知道你们中大部分人都会想“为什么要这样做”?基本上,我有一个 CMS 系统,可以缓存整个页面输出,所以我不能将特定项目包含在 <head><body> 中,因为我不希望它被缓存。
我已经在 Chrome、Firefox、Safari 和 Opera 上成功尝试过了。事实上,这些浏览器似乎都会在页面渲染时自动把它移到 <head> 中。我只是想知道是否有任何其他原因应该避免这样做。

尝试在IE 6中运行。(如果计算机仍可用,那你就很幸运了。) - idmean
1
不,这不行。但是实际上,是可以的。 - user663031
有趣的是为什么人们觉得需要投票反对这个问题。这是一个完全合法的问题。 - suncat100
2个回答

1

好的。但问题实际上并不是,我的页面是否能通过验证,而是,这样做是否可行且不会引起可怕的问题? - user663031
@torazaburo,就我理解而言,原帖作者想知道“还有其他什么原因应该避免这种情况”。 - idmean
当然,我认为不符合标准是避免使用它的理论原因。我认为楼主已经知道这一点了,这也是他发帖提出问题的原因。我有点理解他的问题是是否存在实际原因来避免使用它,比如在某些场景下无法工作。 - user663031
我并没有询问它是否语义化或者是否“正确”。如果有选择的话,我知道在哪里放置标签,但是在这里,我必须找到一种解决方案,以便将变量数据包含在文档中,而不影响缓存之间的任何内容<head></head>。注入的脚本仅用于诊断目的,在使用URL中的?diagnostics时,它不会影响公共URL。 - suncat100

1
如果你真的需要,没有特别的理由不这样做。浏览器在面对各种奇怪的标记时具有惊人的弹性。例如,浏览器将处理任何位置的<style>标签,即使在理论上它们应该放在<head>中。
话虽如此,你无法确定某个东西,在某个时间,某个地方,不会以某种不愉快的方式破裂。
但难道没有其他选择吗?比如在缓存的HTML中包含一个单独的<script src=标签,由服务器单独处理并提供动态JS,似乎你不想缓存它?

谢谢,这正是我想要从阅读完整问题的人那里得到的答案。实际上,这只是一些可选的来自服务器的诊断信息,我不想将其添加到<head>中,因为诊断输出会被缓存。注入只会在URL中附加?diagnostics时发生,任何验证和政治正确性都不是考虑因素。我可以按照您建议的方式做,但即使它是空的,这也将包括加载另一个资源。 - suncat100

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接