noscript标签不适用于Internet Explorer

时间:2013-04-02 09:56:17

标签: javascript html css internet-explorer noscript

我有一个<noscript>标记的网站,除了IE(7,8,9,10)之外的所有浏览器都可以正常使用。 在Internet选项中的安全设置下禁用脚本后,在我的PC上只有我可以在IE上的<noscript>内容,但在其他PC(几乎所有这些)上我看不到代码。使用这些PC,我们使用与Gmail和FB网站相同的设置,我们会收到没有启用js的警告。

这是HTML:

<noscript>
    <div class="noscript">
        JavaScript must be enabled in order for you to use WEBSITE NAME in standard view.<br />
        However, it seems JavaScript is either disabled or not supported by your browser.<br />
        To use standard view, enable JavaScript by changing your browser options, then <a href="">try again</a>. 
    </div>
</noscript>

CSS:

.noscript {
    background: red;
    color: #fff;
    padding: 10px;
    text-align: center;
    position: relative;
    z-index: 3;
}

有什么想法吗?

谢谢!

3 个答案:

答案 0 :(得分:2)

也遇到了这个问题。我在IE中工作,然后它突然停止了。我发现如果你的css嵌套在你的实际css定义中的noscript标签下面,它将工作。如果你只使用一个类名,那就好了。

我正在使用IE 10和他们的开发工具进行测试,以将文档模式更改为较旧的浏览器模式进行验证。实际使用旧浏览器时结果可能会有所不同如果是这种情况,请回报。

示例html:

<noscript>
    <div class="noscript">
        JavaScript must be enabled ...
    </div>
</noscript>

不起作用

// classes nested beneath a noscript tag are not applied by IE
noscript div.noscript {
        display: block;
        text-align: center;
        color: white;
        font-weight: 700;
        background: #D53333;
        margin: 0 auto;
        padding: 4px;
    }

有效吗

div.noscript {
    display: block;
    text-align: center;
    color: white;
    font-weight: 700;
    background: #D53333;
    margin: 0 auto;
    padding: 4px;
}

答案 1 :(得分:0)

即使我遇到过这种情况,因此在经过许多努力之后,我设计了一个效果很好的技巧。取代样式noscript的标记,覆盖在div中禁用javascript时要显示的元素,然后使用javascript不显示该div。 因此,当禁用javascript时,查看器将看到您希望他们看到的div,但是如果启用了javascript,则div的样式将由您编写的脚本显示为不显示。

请参见下面的示例:

通常我们这样做:

  • html:<noscript> please enable javascript ... </noscript>
  • css:noscript{background-color: red; color: white; font-size: 24px; ... }

相反,这样做:

  • html:<div class="noscript"> please enable javascript </div>
  • css:.noscript{background-color: red; color: white; font-size: 24px; ... }
  • js:const noscript = document.querySelector('.noscript').style.display="none";

答案 2 :(得分:-3)

试试这个css

.noscript {
   background: red;
   top: 100px; 
   color: #fff;
   padding: 10px;
   text-align: center;
   position: relative;
   z-index: 3;
}