让AngularJS兼容IE8及其以下浏览器版本的方法
本文地址:http://www.52php.cn/article/p-xeaawiba-bpt.html 项目目前支持且将尝试修复IE9以上的bug 。持续集成服务器在IE9,IE10和IE11上运行所有的测试。详细内容参加Travis CI及ci.angularjs.org。 我们不在IE8及之前的浏览器上运行测试。一些AngularJS的功能子集也许能够在在这些浏览器上工作,但这将由你来测试并决定它在你的特定应用上是否工作。 短版本
<!doctype html>
<html xmlns:ng="http://angularjs.org">
<head>
<!--[if lte IE 7]> <script src="/path/to/json2.js"></script> <![endif]-->
</head>
<body>
...
</body>
</html>
<!doctype html>
<html xmlns:ng="http://angularjs.org" id="ng-app" ng-app="optionalModuleName">
...
</html>
<!doctype html>
<html xmlns:ng="http://angularjs.org" id="ng-app" ng-app="optionalModuleName">
<head>
<!--[if lte IE 8]> <script> document.createElement('ng-include'); document.createElement('ng-pluralize'); document.createElement('ng-view'); // Optionally these for CSS document.createElement('ng:include'); document.createElement('ng:pluralize'); document.createElement('ng:view'); </script> <![endif]-->
</head>
<body>
...
</body>
</html>
重要部分是: xmlns:ng- 命名空间- 你需要为每一个自定义标签指定一个命名空间。 document.createElement(yourTagName)- 创建自定义标签名 - 因为这只是对旧版本IE的问题,所以你需要指定加载条件。对于每一个没有命名空间并且在HTML中没有定义的标签,你需要提前声明以使得IE识别。 版本信息 如果标签名以my:开头那么他会被当做XML命名空间并且必须有对应的命名空间声明 如果我不这样做,会发生什么? 假如你使用HTML的未知标记mytag(my:tag或者my-tag结果是相同的): 应该解析出如下的DOM: #document
+- HTML
+- BODY
+- mytag
+- #text: some text
预期的行为是BODY元素有一个mytag子元素,它带有一些文字。 但是在IE中不是这样的(如果没有包含上面的修订) #document
+- HTML
+- BODY
+- mytag
+- #text: some text
+- /mytag
在IE中,BODY元素有三个子元素: 1,一个自关闭的mytag。例如自关闭标签 <html xmlns:ng="needed for ng: namespace">
<head>
<!--[if lte IE 8]> <script> // 需要确认ng-include被正常解析 document.createElement('ng-include'); // 需求启用CSS引用 document.createElement('ng:view'); </script> <![endif]-->
<style> ng:view { display: block; border: 1px solid red; } ng-include { display: block; border: 1px solid blue; } </style>
</head>
<body>
<ng:view></ng:view>
<ng-include></ng-include>
...
</body>
</html>
转载自:http://www.weste.NET/2014/7-3/97624.html (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 【转】angularJS的兄弟controller之间如何正确的通信
- md5_check.sh 检测文件MD5是否一致
- angularjs – Angular UI Grid – 样式列菜单/应用模板
- 如何使用scala中的case序列/对象不可序列化?注释/特征/帮助
- vim 常用快捷键及使用技巧
- AngularJS 配置路由
- 使用routerLink Angular传递不可见或隐藏的参数
- angularjs – 如何使用http在角度js中下载二进制文件
- Angular 2 setinterval()继续在其他组件上运行
- twitter-bootstrap – 在Twitter Bootstrap中的表中居中文本