`

IE中createElement需要注意的一个小问题

 
阅读更多

在iframe中,创建一个元素,然后添加到父页面中在ie6,ie7中行不通,而firefox和IE8可以

如果你想在IE6,IE7中创建一个父页面元素,那么你必须使创建元素属于父页面。

在Firefox,IE8中,它允许在一个文档中创建要追加到另一个文档的元素。

所以在Firefox,IE8中,可以使用parent.document也可以使用document。

page1页面代码

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>IE中createElement需要注意的一个小问题</title>
</head>
<body>
<body style="background:#0a0;">
<iframe id="TheFrame"
	style="width:100%; height:140px;background:#fff;" 
	frameborder="1" src="page3.html">
</iframe>
<iframe id="TheFrame" 
	style="width:100%; height:140px;background:#fff;
	"frameborder="1" src="page2.html">
</iframe>
</body>
</html>

 page2页面代码

 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type="text/css">
.a {
	width: 200px;
	height: 20px;
	background: #00a;
	cursor: pointer;
	text-align: center;
	color: #fff;
	margin: 10px 0;
}
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script language="javascript" type="text/javascript">
function clickHandler1(){ 
	var $alertPanel = $( document.createElement("div")  );
	$alertPanel.css("width","120px").css("height","50px")
	.css("border","solid 1px #000000").text("Hello CssRain!");
	$('body',parent.document).append($alertPanel);
}
function clickHandler2(){ 
	var $alertPanel = $( parent.document.createElement("div")  );
	$alertPanel.css("width","120px").css("height","50px")
	.css("border","solid 1px #000000").text("Hello CssRain!");
	$('body',parent.document).append($alertPanel);
}
</script>
</head>
<body>
<h3>这里是jQuery方法操作</h3>

<div class="a" onclick="clickHandler1()">请点击我(error)</div>
<div class="a" onclick="clickHandler2()">请点击我(success)</div>
</body>
</html>

 page3页面代码

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<style type="text/css">
.a {
	width: 200px;
	height: 20px;
	background: #00a;
	cursor: pointer;
	text-align: center;
	color: #fff;
	margin: 10px 0;
}
</style>
<script language="javascript" type="text/javascript">
function clickHandler1(){  
	 var div = document.createElement("div");
	 div.style.width = "120px"; 
	 div.style.height = "50px";
	 div.style.border = "solid 1px #000000";
	 div.innerHTML = "Hello CssRain!";
	 parent.document.body.appendChild(div);
}
function clickHandler2(){  
	 var div = parent.document.createElement("div");
	 div.style.width = "120px"; 
	 div.style.height = "50px";
	 div.style.border = "solid 1px #000000";
	 div.innerHTML = "Hello CssRain!";
	 parent.document.body.appendChild(div);
}
</script>
</head>
<body>
<h3>这里是原生的DOM方法操作</h3>
<div class="a" onclick="clickHandler1()">请点击我(error)</div>

<div class="a" onclick="clickHandler2()">请点击我(success)</div>
</body>
</html>

 转载:www.cssrain.cn/?p=1376

 

分享到:
评论

相关推荐

    IE中createElement需要注意的一个问题

    本篇文章将详细探讨一个与`createElement`方法有关的问题,这个问题主要体现在IE6和IE7这两个版本中。 `createElement`是JavaScript中的一个DOM操作方法,用于在当前文档中创建一个新的HTML元素。通常,我们可以...

    IE创建动态表格注意事项

    在IE中,使用`document.createElement()`创建表格元素,`appendChild()`或`insertBefore()`添加到已有元素中,可能需要特别处理IE的特例。 4. **事件处理**: - IE对事件处理函数的支持与非IE浏览器不同。例如,IE...

    IE 不兼容的几个js问题及解决方法

    使用`document.createElement`结合`setAttribute`方法创建单选按钮时,在IE中可能会有问题。 **解决方法:** 直接使用HTML字符串创建单选按钮: ```javascript var radio = document.createElement(...

    浅谈javascript中createElement事件

    兼容性问题也是在使用`createElement`时需要关注的一个点。虽然W3C标准的`document.createElement` 方法在现代浏览器中得到了广泛支持,但在早期,尤其是IE浏览器中,存在着兼容性问题。为了解决这个问题,可以针对...

    ie浏览器 js调用 ocx 异步打印pdf、图片控件

    确保控件注册成功后,我们可以在JavaScript中通过`document.createElement('object')`创建一个对象元素,并设置其`classid`属性为OCX控件的CLSID,从而在网页中插入该控件。 为了实现异步打印,我们需要使用...

    ie6-10兼容性解决-js.zip

    "ie6-10兼容性解决-js.zip"这个压缩包显然为了解决在这些版本的IE中JavaScript代码的兼容性问题。 JavaScript是一种广泛使用的编程语言,用于创建交互式的网页。IE6至IE10之间的兼容性问题主要涉及以下方面: 1. *...

    让IE支持CSS3 Media Query实现响应式Web设计,html5.js让IE(包括IE6)支持HTML5元素方法

    让IE(包括IE6)支持HTML5元素,我们需要在HTML头部添加以下JavaScript,这是一个简单的document.createElement_x声明,利用条件注释针对IE来调用这个js文件。Opera,FireFox等其他非IE浏览器就会忽视这段代码,也...

    ajax中的IE和火狐的区别

    - **创建单选按钮**: 当需要创建一个单选按钮时,两种浏览器也存在差异。 - 在Firefox中,可以通过`document.createElement('input')`并设置其类型、名称等属性来创建单选按钮。 - 而在IE中,可以采用更简洁的方式...

    整理 IE 7、8预览本地图片和获取本地图片大小

    标题中的“整理 IE 7、8 预览本地图片和获取本地图片大小”涉及到的是在Internet Explorer 7和8这两个较旧版本的浏览器中,如何处理本地图片的预览和获取图片尺寸的问题。在早期的Web开发中,由于浏览器兼容性问题,...

    支持ie9的js

    这段代码主要目的是创建一个隐藏的`&lt;iframe&gt;`元素,用于解决浏览器的历史记录问题。其中: - `document.createElement("iframe")`:创建一个新的`&lt;iframe&gt;`元素。 - `setAttribute`方法被用来设置`&lt;iframe&gt;`的属性,...

    让IE兼容 HTML5的canvas标签

    Excanvas是一个由G_v2开发的开源项目,其主要目标就是为旧版IE浏览器提供canvas的支持。它通过VML(Vector Markup Language)来模拟canvas的功能,因为VML是IE浏览器内建的一种矢量图形渲染机制。在页面中引入...

    jquery生成二维码兼容IE

    首先,我们需要一个能够生成二维码的库。在JavaScript中,有一个名为`qrcode-generator`的库,它可以创建不同类型的二维码,包括文本、URL等。要使用这个库,你需要将其通过npm或CDN引入到项目中。如果你选择使用npm...

    IE支持html5脚本插件

    让IE(包括IE6)支持HTML5元素,我们需要在HTML头部添加以下JavaScript,这是一个简单的document.createElement声明,利用条件注释针对IE来调用这个js文件。Opera,FireFox等其他非IE浏览器就会忽视这段代码,也不会...

    IE中document.createElement的iframe无法设置属性name的解决方法

    然而,一个常见的问题是在Internet Explorer(IE)浏览器中,通过`document.createElement`创建的`iframe`元素无法设置`name`属性,这可能导致一些功能无法正常工作,例如链接或表单的目标定位。 `name`属性对于`...

    IE8的JavaScript点击事件(onclick)不兼容的解决方法

    上述代码片段中,`this.ClickFunctionName`是需要被触发的函数名,`pageIndex`是传递给该函数的参数,`Pager.SetCurrent`是另一个需要执行的方法。`eval`函数将字符串`js`作为JavaScript代码执行,从而触发对应的...

    检查浏览器IE6提示升级

    标题提到的“检查浏览器IE6提示升级”是一个常见的情况,特别是在开发或维护网站时,开发者可能会遇到需要对仍然使用IE6的用户进行提示升级浏览器的需求。这一现象主要是由于IE6不支持许多现代Web技术,如CSS3、...

    document.createElement()用法及注意事项(ff下不兼容)

    在IE中,`document.createElement()` 可以接受一个包含HTML属性的字符串,如 `";border-bottom:2px solid #c0c0c0;' readonly&gt;"`,这样创建的元素可以直接带有预设的属性。然而,Firefox并不支持这种做法,可能会...

    开发跨浏览器JavaScript时要注意的问题

    例如,假设需要为一个`&lt;span&gt;`元素设置粗体和红色字体: ```javascript var spanElement = document.getElementById('mySpan'); // 对于非IE浏览器 spanElement.style.cssText = 'font-weight:bold;color:red;'; ...

    IE浏览器兼容

    总的来说,解决IE浏览器的兼容问题需要对各种特性、工作原理以及其历史版本的差异有深入理解。随着IE逐渐退出历史舞台,开发者应更多地关注现代浏览器的兼容性,但对遗留的IE项目,这些知识仍然是宝贵的。

Global site tag (gtag.js) - Google Analytics