您现在的位置是:网站首页> 编程资料编程资料
浅谈JavaScript中浏览器兼容的问题_心得技巧_网页制作_
2021-09-11
888人已围观
简介 下面小编就为大家带来一篇浅谈JavaScript中浏览器兼容的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
浏览器兼容性问题是在实际开发中容易忽略而又最重要的一部分。我们在讲老版本浏览器兼容问题之前,首先要了解什么是能力检测,它是来检测浏览器有没有这种能力,即判断当前浏览器是否支持要调用的属性或者方法。下面做了一些简短的介绍。
1、innerText 和 innerContent
1)innerText 和 innerContent 的作用相同
2)innerText IE8之前的浏览器支持
3)innerContent 老版本的Firefox支持
4)新版本的浏览器两种方式都支持
JavaScript Code复制内容到剪贴板
- // 老版本浏览器兼容 innerText 和 innerContent
- if (element.textContent) {
- return element.textContent ;
- } else {
- return element.innerText;
- }
2、获取兄弟节点/元素的兼容性问题
1)兄弟节点,所有浏览器都支持
①nextSibling 下一个兄弟节点,可能是非元素节点;会获取到文本节点
②previousSibling 上一个兄弟节点,可能是非元素节点;会获取到文本节点
2)兄弟元素,IE8以前不支持
①previousElementSibling 获取上一个紧邻的兄弟元素,会忽略空白
②nextElementSibling 获取下一个紧邻的兄弟元素,会忽略空白
JavaScript Code复制内容到剪贴板
- //兼容浏览器
- // 获取下一个紧邻的兄弟元素
- function getNextElement(element) {
- // 能力检测
- if(element.nextElementSibling) {
- return element.nextElementSibling;
- } else {
- var node = element.nextSibling;
- while(node && node.nodeType !== 1) {
- node = node.nextibling;
- }
- return node;
- }
- }
JavaScript Code复制内容到剪贴板
- /**
- * 返回上一个元素
- * @param element
- * @returns {*}
- */
- function getPreviousElement(element) {
- if(element.previousElementSibling) {
- return element.previousElementSibling;
- }else {
- var el = element.previousSibling;
- while(el && el.nodeType !== 1) {
- el = el.previousSibling;
- }
- return el;
- }
- }
JavaScript Code复制内容到剪贴板
- /**
- * 返回第一个元素firstElementChild的浏览器兼容
- * @param parent
- * @returns {*}
- */
- function getFirstElement(parent) {
- if(parent.firstElementChild) {
- return parent.firstElementChild;
- }else {
- var el = parent.firstChild;
- while(el && el.nodeType !== 1) {
- el = el.nextSibling;
- }
- return el;
- }
- }
JavaScript Code复制内容到剪贴板
- /**
- * 返回最后一个元素
- * @param parent
- * @returns {*}
- */
- function getLastElement(parent) {
- if(parent.lastElementChild) {
- return parent.lastElementChild;
- }else {
- var el = parent.lastChild;
- while(el && el.nodeType !== 1) {
- el = el.previousSibling;
- }
- return el;
- }
- }
JavaScript Code复制内容到剪贴板
- /**
- *获取当前元素的所有兄弟元素
- * @param element
- * @returns {Array}
- */
- function sibling(element) {
- if(!element) return ;
- var elements = [ ];
- var el = element.previousSibling;
- while(el) {
- if(el.nodeType === 1) {
- elements.push(el);
- }
- el = el.previousSibling;
- }
- el = element.previousSibling;
- while(el ) {
- if(el.nodeType === 1) {
- elements.push(el);
- }
- el = el.nextSibling;
- }
- return elements;
- }
3、array.filter();
// 使用指定的函数测试所有元素,并创建一个包含所有通过测试的元素的新数组
JavaScript Code复制内容到剪贴板
- // 兼容旧环境
- if (!Array.prototype.filter)
- {
- Array.prototype.filter = function(fun /*, thisArg */)
- {
- "use strict";
- if (this === void 0 || this === null)
- throw new TypeError();
- var t = Object(this);
- var len = t.length >>> 0;
- if (typeof fun !== "function")
- throw new TypeError();
- var res = [];
- var thisArg = arguments.length >= 2 ? arguments[1] : void 0;
- for (var i = 0; i < len;
相关内容
- 浅谈前端制作中,IE6还有必要兼容吗_心得技巧_网页制作_
- CSS3实用方法总结(推荐)_心得技巧_网页制作_
- 人人必知10个网站易用性技巧 _心得技巧_网页制作_
- 关于启用 HTTPS 的一些经验分享_心得技巧_网页制作_
- 分享15个最佳的HTML/CSS设计和开发框架_心得技巧_网页制作_
- 分享10个最新的Web前端框架(翻译)_心得技巧_网页制作_
- 关于favicon.ico的两三事(最好就是放根目录)_心得技巧_网页制作_
- 前端开发必备常用工具函数小结_心得技巧_网页制作_
- 专题页设计的5个基本功(阿里巴巴UED 山木)_心得技巧_网页制作_
- 如何选购完美芦荟胶?完美芦荟胶辨别真假的方法技巧_心得技巧_网页制作_
点击排行
本栏推荐
