如何在其显示的noscript标签内添加链接标签

时间:2010-07-21 14:41:35

标签: html

我在标签内添加了标签,如下所示

<noscript>
    <link type="text/css" rel="stylesheet" href="${staticFilesUrl}/css/noscript-overrule.css" />
</noscript>

但是在启用javascript的firefox中我看到类似这样的内容

<noscript>
      &lt; link type="text/css" rel="stylesheet" href="/static/snsbank/css/noscript-overrule.css" /&gt;
</noscript>

事件我试图将样式标记放在noscript标记内仍然在firefox中我得到了以下结果

<noscript>
    &lt; style &gt; #whiteBox{ width:30%; &lt/style&gt;
</noscript>

任何人都可以告诉我如何避免这种情况?

4 个答案:

答案 0 :(得分:2)

你在评论中提出:“如果我只想在禁用javascript的情况下使用一个css文件,那我该怎么办?”

至少两种方式(可能更多):

  1. 有一个默认的样式表,适用于没有始终加载的javascript。然后,如果启用了javascript,请使用<script>中的head标记在默认情况下加载不同的样式表以覆盖样式。

  2. 如果你只是有一些改变的东西,请设置一个样式表,并在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部分中,而不是在正文中。您是否将此代码放在文档的头部?