基于浏览器版本的不同内容?

时间:2012-04-24 09:54:21

标签: jquery internet-explorer content-management-system browser dotnetnuke

是否可以根据用户使用的浏览器在CMS(DNN)中显示不同的内容?例如,IF IE 7然后显示内容1

IE7不喜欢图像地图,而且只是向用户显示我所制作的流程图的静态图像。

<!--[if IE 7]>
Special instructions for IE 7 here
<![endif]-->

我想编写一些jquery来删除内容窗格中div类的内容(对于该页面,因此检查文件扩展名process.aspx),然后在隐藏的div中启用图像。 &LT;&LT;那就是我的理论?

  1. 检测哪个浏览器(如果是ie7那么:
  2. 从内容窗格中删除内容(检查process.aspx的网址)
  3. 使用display:block
  4. 启用隐藏的div

3 个答案:

答案 0 :(得分:1)

您可以使用jQuery.browser方法:

if (jQuery.browser.msie && jQuery.browser.version == '7.0') {
      $('#content').show();
}

http://api.jquery.com/jQuery.browser/

答案 1 :(得分:1)

这是获取IE版本的JS方法(如果不是IE,则返回-1):

function isUndefined(e) {
    return typeof e === "undefined";
}

function getIEVersion() {
    var style = document.body.style;
    var version = -1;
    if(!isUndefined(style.scrollbar3dLightColor)) {
        if (!isUndefined(style.opacity)) version = 9;
        else if (!isUndefined(style.msBlockProgression)) version = 8;
        else if (!isUndefined(style.msInterpolationMode)) version = 7;
        else if (!isUndefined(style.textOverflow)) version = 6;
        else version = 5;
    }
    return version;
}

然后,使用jQuery:

$(function() {
    if(getIEVersion() == 7) {
        $('#content-pane').hide();
        $('#hidden-div').show();
    }
});

答案 2 :(得分:0)

老实说,你可以用CSS做到这一点。

你有两件内容

<div class="ForEveryone">
<!-- Your stuff here -->
</div>

<div class="ForIE7">
<!-- Code for less helpful browser here -->
</div>

然后默认情况下要做css

.ForIE7 { display: none; }

然后使用IE 7特定样式表将其更改为

.ForEveryone { display: none; }
.ForIE7 { display: block; }

无需为此播放javascript。