检测Internet Explorer并将自定义属性应用于iFrame

时间:2013-04-01 14:47:05

标签: jquery modernizr

我有一个通过我的页面上的一些javascript生成的iFrame,在jQuery 1.9之前我使用一个简单的检查来查看是否正在使用Internet Explorer并添加了一些属性,以便在ie7和ie8中正确渲染iframe 。当然这些属性不再有效,除非绝对必要,否则我不希望HTML中包含无效代码,因此它们仅适用于ie8及以下。

var ieOldAttr = " ";
if ($.browser.msie && parseInt($.browser.version, 10) <= 8) {
    ieOldAttr = "allowTransparency=\"true\" marginheight=\"0\" marginwidth=\"0\" frameborder=\"0\" ";
} 

//Generate iFrame here
pageOutput += "<iframe id=\"feedbackiFrame\" src=\"URLHERE\"" + ieOldAttr + "style=\"border: none; overflow: hidden; height: 540px; width: 415px; position:absolute; left: 5px; top: 5px;\"><\/iframe>";

$(document).ready(function () {
    $(pageOutput).appendTo(document.body);
});

在jQuery 1.9中他们弃用.browser,他们建议使用现代化器,但我不认为modernizr能够完成我在这里需要它做的事情。有没有一种方法,我不知道在modernizr能够检测到这个并正确渲染iFrame,或者我需要做一些纯javascript来检测浏览器然后将其应用到iFrame。

1 个答案:

答案 0 :(得分:0)

我最终使用了这个漂亮的小功能。纯JS。

var Browser = {
  Version: function() {
    var version = 0;
    if (navigator.appVersion.indexOf("MSIE") != -1)
      version = parseFloat(navigator.appVersion.split("MSIE")[1]);
    return version;
  }
}