IE 7中的Angularjs错误对象没有't支持属性或方法'querySelector'

Angularjs error in IE 7 Object doesn't support property or method 'querySelector'

本文关键字:支持 属性 querySelector 方法 中的 对象 错误 IE Angularjs      更新时间:2023-09-26

我在一个现有的asp.net项目中引入angularjs,该项目中有许多语句只能在IE 7兼容模式下工作,但当我运行该项目时,我从angular js文件中得到以下错误

Object doesn't support property or method 'querySelector'

经过一点R&D关于这个问题,我认为querySelector只是从IE 8中引入的。

现在,我如何使用angularjs使我的应用程序在IE 7中工作。?

我不想为超过ie7设置元标签,因为我现有的应用程序依赖于ie7,这在ie8及以上版本中不起作用。

我尝试配置角度模块禁用SCE如下:

var rtApp = angular.module("realTimeNotifications", []).config(function($sceProvider) {
    // Completely disable SCE to support IE7.
    $sceProvider.enabled(false);
});

但仍然没有运气。

提前谢谢。

我也一直在努力解决IE7和IE6的兼容性问题,并发现使用angularjs版本1.1.5而不是1.2.25可以防止您描述的错误。

除了这个简单的例子之外,angular在IE6和IE7中是否可用是另一回事。

下面的代码已经在IE6,7,8,9,11中测试,兼容模式设置为on。

我认为这个例子的许多部分可以省略。我刚开始使用angular,所以不能保证使用最佳实践。它至少应该提供一个起点。

<!DOCTYPE html>
<html class="ng-app:phonecatApp" ng-app="phonecatApp" id="ng-app" xmlns:ng="http://angularjs.org" lang="en">
<head>
    <meta http-equiv="X-UA-Compatible" content="IE=EDGE; IE=9; IE=8; IE=7" />
    <meta charset="utf-8">
    <title>My HTML File</title>
    <link rel="stylesheet" href="../stylesheets/html5.css">
    <!--[if lte IE 7]>
        <script src="../Includes/Client/JS/json2.js"></script>
    <![endif]-->
    <!--[if lte IE 9]>
        <script type="text/javascript" src="es5-shim-4.0.3-min.js"></script>
    <![endif]-->
    <script type="text/javascript" src="html5shiv.min.js"></script>
    <script type="text/javascript" src="angular-1.1.x.js"></script>
    <script type="text/javascript">
        var phonecatApp = angular.module('phonecatApp', []);
        phonecatApp.controller('PhoneListCtrl', function ($scope) {
          $scope.phones = [
            {'name': 'Nexus S',
             'snippet': 'Fast just got faster with Nexus S.'},
            {'name': 'Motorola XOOM™ with Wi-Fi',
             'snippet': 'The Next, Next Generation tablet.'},
            {'name': 'MOTOROLA XOOM™',
             'snippet': 'The Next, Next Generation tablet.'}
          ];
        });
    </script>
</head>
<body ng-controller="PhoneListCtrl">
    <ul>
        <li ng-repeat="phone in phones">
            {{phone.name}}
            <p>{{phone.snippet}}</p>
        </li>
    </ul>
</body>