我在标签内添加了标签,如下所示
<noscript>
<link type="text/css" rel="stylesheet" href="${staticFilesUrl}/css/noscript-overrule.css" />
</noscript>
但是在启用javascript的firefox中我看到类似这样的内容
<noscript>
< link type="text/css" rel="stylesheet" href="/static/snsbank/css/noscript-overrule.css" />
</noscript>
事件我试图将样式标记放在noscript标记内仍然在firefox中我得到了以下结果
<noscript>
< style > #whiteBox{ width:30%; </style>
</noscript>
任何人都可以告诉我如何避免这种情况?
答案 0 :(得分:2)
你在评论中提出:“如果我只想在禁用javascript的情况下使用一个css文件,那我该怎么办?”
至少两种方式(可能更多):
有一个默认的样式表,适用于没有始终加载的javascript。然后,如果启用了javascript,请使用<script>
中的head
标记在默认情况下加载不同的样式表以覆盖样式。
如果你只是有一些改变的东西,请设置一个样式表,并在body
NoJavascriptEnabled
上使用一个类,当你没有启用javascript时,你会使用这个类来定位这几个样式,如果启用了javascript,则使用javascript 删除该类。
答案 1 :(得分:1)
@Vipul - 您的解决方案应该适用于现代浏览器。您的问题表明,启用了javascript后,您会在标记中看到转义的html - 是否也会在浏览器中呈现这样的内容? (如果启用了javascript,则不应该这样。)如果不是这种情况,那么启用JS时看到的无效标记应该不是问题,因为如果垃圾不可见,谁会关心它的样子。 / p>
@Sarfraz - 标签用于html(不是javascript),在javascript不可用时显示标记 - 禁用或不支持。添加链接标记有一种在javascript不可用时加载特定样式表的常用方法。尽管@Geert指出它是一种非标准的方法 - 它确实有效。
在这种情况下,似乎@Vipul在firebug中看到了一些奇怪的标记 - 但FF6支持它。
在任何一种情况下,您都应该注意@ Scott的答案中的第二点建议 - 不要使用第一个建议,因为这样可以为99%的互联网用户增加额外的(可能很小的) js已启用。坚持将“no-js”类默认为你的html标签,然后用头部的javascript删除它。一定要在你的头脑中这样做,否则你将fouc the browser.
@ Scott规则的例外情况是,如果你需要为没有启用JS的用户加载大量的CSS。在那种情况下,如果通过noscript标签禁用JS,我建议只链接到css。为什么惩罚99%的拥抱动态网络环境的用户,因为你需要为网络的其余部分提供样式修复?
答案 2 :(得分:0)
CSS不是脚本,<noscript>
标记用于javascript,以防它被禁用。你为什么这样做?它不像你一样用于CSS。
答案 3 :(得分:0)
<link>
仅允许在HTML文档的head部分中,而不是在正文中。您是否将此代码放在文档的头部?