0

我正在尝试通过在其中插入我自己的 Javascript 文件来修改现有网页。我通过我的 Javascript 插入一个新的 Div 并将该 div 的背景设置为图像 url 来为此网页设置背景图像。为了使这张图片在背景上居中并使其占据整个网页,我正在使用

'background-size': 'cover'

财产。这当然不适用于较旧的 IE 版本。

我想修复它,我正在考虑按使用页面高度/宽度和图像高度/宽度计算的特定比例放大图像。

所以我想检测浏览器是否是IE。我检查了网页,它有这段代码可以检测浏览器并添加一个带有 IE 类的 div。

<!--[if lte IE 5]>
  <div class="ie">
<![endif]-->
<!--[if IE 6]>
  <div class="ie ie6">
<![endif]-->
<!--[if IE 7]>
  <div class="ie ie7">
<![endif]-->

我的问题是如何检测这个页面是否有一个带有 ie 类的 div。此外,如果有人可以建议一种替代方法,在网页上设置背景图像,完全不考虑图像/页面的尺寸和图像中心是否聚焦,我将不胜感激。

4

3 回答 3

2

您必须遍历<div>页面上的所有元素,直到其中一个与className您要查找的元素匹配。就像是:

var div = document.getElementsByTagName('div');
for(i=0; i<div.length; i++) {
    if(div[i].className.match(/(^|\s)ie(\s|$)/)) {

        // Code to Do your IE Stuff Here

        break;
    }
}
于 2013-03-23T01:21:20.110 回答
1
document.addEventListener("DOMContentLoaded", function() {
  var ie = document.getElementsByClassName("ie");
  if(ie.length > 0) {
    alert("It's IE!");
  }
}

这应该回答您的第一个问题,尽管我同意您的总体目标有更好的解决方案。

于 2013-03-23T01:21:05.163 回答
0

如果您在页面中加载 jQuery 库,您可以从 Google CDN 链接该库,这是一件非常简单的事情。

CDN:https ://developers.google.com/speed/libraries/devguide#jquery

用法:$("div.className").first()

否则这将需要更多的努力......处理这个问题的最佳方法是向 div 元素添加一个 id 属性,如下所示:

<div id="myElement"></div>

然后使用 document.getElementById 函数检索您的 div 标签。

document.getElementById('myElement');

要查看添加后它是否具有特定类,请参阅另一篇文章: 测试元素是否包含类?

于 2013-03-23T01:17:46.787 回答