以下代码在IE8下运行通过,在IE9中出错:
document.createElement('<iframe id="yui-history-iframe" src="../../images/defaults/transparent-pixel.gif" style="position:absolute;top:0;left:0;width:1px;height:1px;visibility:hidden;"></iframe>');
错误提示:exception : SCRIPT5022: DOM Exception: INVALID_CHARACTER_ERR (5)
思路分析:
第一步:兼容IE9,firefox,Opera,Safari等浏览器;
var iframe = document.createElement("iframe");
iframe.setAttribute("id", "yui-history-iframe");
iframe.setAttribute("src", "../../images/defaults/transparent-pixel.gif");
iframe.setAttribute("style","position:absolute;top:0;left:0;width:1px;height:1px;visibility:hidden;");
第二步:兼容IE6-8:由于ie6-8 不能修改iframe的name属性
var oFrame = isIE ? document.createElement("<iframe name=/"" + this._FrameName + "/">") : document.createElement("iframe");
oFrame.name = "iframName";
综合解决办法:
var isIE = (document.all) ? true : false;//这里仅仅简单的对是否是IE进行判断,详细浏览器判断:请参考浏览器类型侦测
var ua = navigator.userAgent.toLowerCase().match(/msie ([/d.]+)/)[1];
if (ua == "9.0") {
isIE = false;
}
var oFrame = isIE ? document.createElement("<iframe name=/"" + this._FrameName + "/">") : document.createElement("iframe");
oFrame.name = "iframName";
相关推荐
在IE9及更高版本中,为了更好地遵循W3C标准,微软对某些方法进行了调整,使得`document.createElement`的行为与其他现代浏览器如Firefox和Chrome保持一致。这可能导致在旧的编写方式下出现兼容性问题,尤其是在尝试...
总的来说,`document.createElement()`在处理浏览器兼容性时需要谨慎,尤其是涉及到`input`元素时。遵循最佳实践并利用`setAttribute`来设置属性,可以确保在多种浏览器环境下代码的稳定性和可靠性。
针对`document.frames`在非IE浏览器中的兼容性问题,一个通用且被广泛采用的解决方案是使用`window.frames`。`window.frames`是所有现代浏览器都支持的标准API,它可以用来获取当前窗口中的所有iframe或frameset。 ...
在上述代码中,我们首先尝试使用IE兼容的方式创建`iframe`。如果失败(即抛出异常),则会捕获这个异常,并使用标准的`document.createElement('iframe')`方法创建`iframe`,然后手动设置`name`属性。这样,无论在IE...
这可以通过调用`document.createElement()`函数实现,如下所示: ```javascript document.createElement('article'); document.createElement('section'); document.createElement('aside'); document....
在使用JavaScript动态创建`<table>`元素并添加行(`<tr>`)或单元格(`<td>`)时,直接使用`document.createElement()`结合`appendChild()`可能无法在Internet Explorer(IE)中正确显示。 **解决方法:** 为了确保...
var table = document.createElement("table"); var thead = document.createElement("thead"); var tbody = document.createElement("tbody"); // 添加表头 var tr = document.createElement("tr"); thead....
复制代码代码如下: document.createElement(‘header’); document.createElement(‘nav’); document.createElement(‘section’); document.createElement(‘article’); document.createElement(‘aside’); ...
在Internet Explorer(IE)中,`createElement`方法允许开发者直接创建包含属性和事件的HTML字符串,如`document.createElement('<table border="0">')`,这种方式能够一次性创建带有特定属性(如`border="0"`)的...
通过`document.createElement`方法创建一个新的`div`元素,并设置其样式属性,包括高度、宽度、背景颜色、不透明度等。最后,将其添加到页面的`body`元素中。 ##### 步骤二:创建子窗体 ```javascript // 创建子...
IE8不支持W3C标准的`document.createElement()`, `appendChild()`, `removeChild()`等DOM操作。因此,为了兼容IE8,我们需要使用其特有的`document.all`对象和`innerHTML`属性来创建、修改和删除DOM元素。例如,...
var newElement = document.createElement('<div class="example"></div>'); // Firefox var newElement = document.createElement('div'); newElement.className = 'example'; ``` 【兼容处理】使用通用的创建...
document.createElement('canvas').getContext) { G_vmlCanvasManager.initElement(document.getElementById('myCanvas')); } ``` 4. **使用canvas API**:在确保canvas可用后,可以通过`document.getElementById('...
使用`<tbody>`元素以确保IE兼容性 当创建HTML表格时,一些现代浏览器(如Chrome、Firefox等)允许直接向`<table>`元素添加`<tr>`元素,但在Internet Explorer(尤其是较老版本的IE)中,这种做法会导致渲染问题。...
- **document.createElement(Tag)**:创建一个新的HTML元素。其中`Tag`参数为元素的标签名,如“div”、“span”等。 - **document.getElementById(ID)**:根据给定的ID值查找页面中唯一的一个元素。 - **document....
document.createElement("<iframename=/" + this._FrameName + "/>") : document.createElement("iframe"); oFrame.name = "iframName"; ``` 这段代码首先检测当前浏览器是否为IE,并判断其版本号。如果检测到的...
2. **IE兼容性处理** 对于IE,我们可以利用`ActiveXObject`,这是一个专为IE设计的对象,用于与服务器进行交互。我们可以创建一个`ActiveXObject`实例,如`new ActiveXObject("Microsoft.XMLHTTP")`,然后用它发送...