`
highfly-s
  • 浏览: 100843 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javascript 动态创建页面元素兼容问题

阅读更多

为了提高网页的加载速度,减少服务器的压力。我们会采用javascript动态来创建html页面元素。好处是有的,但坏处也会相对而行。我们在创建html元素会存在一些浏览器兼容性的问题。主要表现于ie7 及其以下版本。以下对此进行问题 分析和处理。

 

/*
动态创建页面素时会存在一些兼容性的问题(仅存在于ie7 及更低的版本)
已知的一些问题:
1.不能设置动态创建的<iframe>  元素的name属性
2.不能通过表单的reset()方法重设动态重建的<input>元素
3.动态创建的type特性值为reset的<button>元素重置不了表单
4.动态创建的一批name相同的单选/复选 按钮彼此毫无关系。name值相同的一组单选/复选 按钮本来应该用于表示同一选项的不同值,但动态创建的一批这种单选按钮之间却没有这种关系。

*/

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>


</head>

<body>
</body>
<script language="javascript" type="text/javascript">

 


//(一) 兼容 IE7以上或者其他浏览器
  /* var box1=  document.createElement("input");
   box1.type="checkbox";
   box1.name="age";
   box1.value="20";
   var box2=  document.createElement("input");
   box2.type="checkbox";
   box2.name="age";
   box2.value="20"; 
   var box3=  document.createElement("input");
   box3.type="checkbox";
   box3.name="all";
   box3.value="20";
   document.body.appendChild(box1);
   document.body.appendChild(box2);
   document.body.appendChild(box3);
   document.getElementsByName('all')[0].onclick=function(){
     if(this.checked){
       var len= document.getElementsByName("age").length;
       for(i=0;i<len;i++){
        document.getElementsByName("age")[i].checked=true;
    }
   }else{
       var len= document.getElementsByName("age").length;
       for(i=0;i<len;i++){
        document.getElementsByName("age")[i].checked=false;
    }
   }   
 }*/

//(二) 兼容 IE7 及其以下的浏览器
   /*var box1=  document.createElement("<input type=\"checkbox\" name=\"age\" value=\"21\" />");
   var box2=  document.createElement("<input type=\"checkbox\" name=\"age\" value=\"22\" />"); 
   var box3=  document.createElement("<input type=\"checkbox\" name=\"all\" value=\"22\" />"); ;
   document.body.appendChild(box1);
   document.body.appendChild(box2);
   document.body.appendChild(box3);
   document.getElementsByName('all')[0].onclick=function(){
     if(this.checked){
       var len= document.getElementsByName("age").length;
       for(i=0;i<len;i++){
        document.getElementsByName("age")[i].checked=true;
    }
   }else{
       var len= document.getElementsByName("age").length;
       for(i=0;i<len;i++){
        document.getElementsByName("age")[i].checked=false;
    }
   }   
 } */
 
//(三) 兼容各种浏览器的方法
var Sys = {};
var ua = navigator.userAgent.toLowerCase();
var s;
(s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] :
(s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] :
(s = ua.match(/chrome\/([\d.]+)/)) ? Sys.chrome = s[1] :
(s = ua.match(/opera.([\d.]+)/)) ? Sys.opera = s[1] :
(s = ua.match(/version\/([\d.]+).*safari/)) ? Sys.safari = s[1] : 0;
if(parseInt(Sys.ie)<=7){
   var box1=  document.createElement("<input type=\"checkbox\" name=\"age\" value=\"21\" />");
   var box2=  document.createElement("<input type=\"checkbox\" name=\"age\" value=\"22\" />"); 
   var box3=  document.createElement("<input type=\"checkbox\" name=\"all\" value=\"22\" />"); ;
   document.body.appendChild(box1);
   document.body.appendChild(box2);
   document.body.appendChild(box3);
   document.getElementsByName('all')[0].onclick=function(){
     if(this.checked){
       var len= document.getElementsByName("age").length;
       for(i=0;i<len;i++){
        document.getElementsByName("age")[i].checked=true;
    }
   }else{
       var len= document.getElementsByName("age").length;
       for(i=0;i<len;i++){
        document.getElementsByName("age")[i].checked=false;
    }
   }   
 }
  

}else{
   var box1=  document.createElement("input");
   box1.type="checkbox";
   box1.name="age";
   box1.value="20";
   var box2=  document.createElement("input");
   box2.type="checkbox";
   box2.name="age";
   box2.value="20"; 
   var box3=  document.createElement("input");
   box3.type="checkbox";
   box3.name="all";
   box3.value="20";
   document.body.appendChild(box1);
   document.body.appendChild(box2);
   document.body.appendChild(box3);
   document.getElementsByName('all')[0].onclick=function(){
     if(this.checked){
       var len= document.getElementsByName("age").length;
       for(i=0;i<len;i++){
        document.getElementsByName("age")[i].checked=true;
    }
   }else{
       var len= document.getElementsByName("age").length;
       for(i=0;i<len;i++){
        document.getElementsByName("age")[i].checked=false;
    }
   }   
 }
}
 
</script>
</html>

问题补充:

 

 js动态创建页面时,对于搜索引擎不是那么的友好。为了促使友好体验,我们还需要去选择的去使用。如果我们做的是一个管理型的或者是产品型的项目,就不用去考虑搜索引擎了,反之其他的需要考虑。

 

 

分享到:
评论

相关推荐

    javascript动态生成页面元素

    本文将深入探讨如何利用JavaScript动态生成HTML页面元素,包括使用innerHTML属性和DOM(Document Object Model)方法两种主要方式,以及在不同浏览器环境下的兼容性问题。 ### 1. 使用innerHTML属性 `innerHTML`...

    javascript下动态创建表格的三种方式

    ### JavaScript 下动态创建表格的三种方式 在网页开发过程中,经常需要通过JavaScript来动态地创建或更新HTML元素,其中就包括表格(`&lt;table&gt;`)。本文将详细介绍在JavaScript中动态创建表格的三种常见方法,并对每...

    JavaScript动态添加删除表格行

    这篇博客"JavaScript动态添加删除表格行"可能详细讲解了如何使用JavaScript实现这一功能。通过给定的标签"源码"和"工具",我们可以推测这篇文章会包含实际的代码示例和实用方法。 在HTML中,`&lt;table&gt;`元素用于创建...

    解决idea开发遇到javascript动态添加html元素时中文乱码的问题

    几个月前创建的一个小网站,在重新访问时,发现JavaScript动态生成的HTML元素中的中文出现了乱码,但后台返回的动态中文数据却没有问题。这说明问题可能出在前端JavaScript的编码处理上。 通常,开发者会尝试将所有...

    【移动端兼容问题研究】javascript事件机制详解(涉及移动兼容)1

    - 使用`addEventListener`和`removeEventListener`来绑定和解绑事件,而不是传统的`on*`属性,因为它们更灵活,且在处理动态创建的元素时更适用。 - 使用`event.stopPropagation()`阻止事件冒泡,`event....

    javascript与jquery动态创建html元素示例

    #### JavaScript动态创建HTML元素 JavaScript提供了`document.createElement()`方法来创建新的元素节点。通过此方法,我们可以创建任何类型的HTML元素,并通过DOM API将其添加到页面中的指定位置。 **创建select...

    Javascript动态创建div的方法

    以上介绍了JavaScript动态创建div元素的几种方法和相关知识点。通过这些方法,开发者可以灵活地控制页面内容,实现各种交互效果。但是,随着Web技术的发展,现代前端开发越来越依赖于框架和库来处理这些操作,这使得...

    JavaScript 瀑布流 吸顶 兼容IE FF Chrome

    JavaScript瀑布流布局是一种常见的网页设计模式,常用于展示图片或者文章...总的来说,JavaScript瀑布流和吸顶效果是网页动态布局的重要技术,结合适当的兼容性处理,可以在各种现代和老旧浏览器中提供一致的用户体验。

    JavaScript_特效 JavaScript 网页特效 网页编程必备

    JavaScript是一种广泛应用于网页和网络应用的脚本语言,它在客户端运行,为用户提供动态、交互式的用户体验。在网页编程中,JavaScript特效是不可或缺的一部分,它能够使网站更加生动有趣,吸引用户注意力,提升用户...

    javascript动态创建表格及添加数据实例详解

    ### 动态创建表格(代码不兼容IE6) 在不兼容IE6的实现方法中,作者使用了`document.createElement`方法动态地创建了表格的行(`&lt;tr&gt;`)和单元格(`&lt;td&gt;`)。然后通过`innerText`属性向单元格内添加文本内容。由于...

    零基础学JavaScript动态网页设计

    这个教程“零基础学JavaScript动态网页设计”显然是为初学者量身定制的,旨在帮助没有编程背景的人掌握创建交互式网页的基本技能。以下是对这个主题的详细解释: 一、JavaScript简介: JavaScript是一种解释型、跨...

    JavaScript动态网页设计经典实例教程

    通过DOM,JavaScript可以查找、修改和添加网页元素,实现动态更新页面内容。例如,我们可以使用`document.getElementById`、`document.createElement`、`element.appendChild`等方法来操作DOM。 事件处理是...

    jqueryUI,jqueryapi1.8,网页特效手册,javascript手册,网页兼容手册,全中文文档打包

    网页特效是指通过JavaScript和CSS实现的各种动态视觉效果,可以增强用户体验和网站的吸引力。这可能包括页面过渡、图片轮播、滑动面板、滚动动画等。利用jQuery库,开发者可以轻松实现这些特效,比如使用 `.fadeIn()...

    《JavaScript动态网页设计经典实例教程》共给网上下载的代码

    《JavaScript动态网页设计经典实例教程》是一本专为学习JavaScript动态网页设计的书籍,通过提供一系列的实例代码,帮助读者深入理解和应用JavaScript技术。在网页设计领域,JavaScript扮演着至关重要的角色,它使得...

    基于jquery的关于动态创建DOM元素的问题

    在JavaScript和jQuery的世界里,动态创建DOM元素是常见的需求,特别是在构建交互丰富的Web应用时。然而,不恰当的实现方式可能会导致性能问题和兼容性挑战。让我们深入探讨基于jQuery的动态创建DOM元素的最佳实践。 ...

    javascript hover 特效网页

    在网页设计中,JavaScript是一种非常重要的脚本语言,它赋予了网页动态交互的能力。"hover"是CSS(层叠样式表)中的一个伪类选择器,用于定义鼠标悬停时元素的样式。当用户将鼠标指针悬停在某个元素上时,hover效果...

    精通JavaScript ——动态网页(实例版)详尽实例

    JavaScript,作为全球最广泛使用的编程语言之一,是创建动态网页的关键技术。本书“精通JavaScript ——动态网页(实例版)”旨在通过详尽的实例帮助读者深入理解和熟练掌握JavaScript的核心概念和应用。 首先,我们...

    用javascript实现菜单的动态效果

    在网页设计中,动态菜单是一种常见的交互元素,它能够提供用户友好的导航体验。JavaScript作为客户端脚本语言,是实现动态菜单的首选工具。本文将深入探讨如何利用JavaScript实现各种类型的动态菜单,包括树型目录...

    javascript经典特效---动态状态栏说明.rar

    JavaScript是一种广泛应用于网页和网络应用的编程语言,尤其在创建交互式用户界面方面表现出色。在本案例中,"javascript经典特效---动态状态栏说明.rar" 提供的是关于如何使用JavaScript来实现动态状态栏的教程。...

    javaScript 网页开发实例教程

    JavaScript通过DOM可以对网页元素进行增删改查,实现动态效果。比如,你可以使用JavaScript来改变文本内容、样式、添加或移除元素,以及处理事件(如点击、滚动等)。 三、事件处理 JavaScript事件处理是网页互动性...

Global site tag (gtag.js) - Google Analytics