首页 > 开发 > CSS > 正文

Opera下cloneNode的bug

2024-07-11 08:21:34
字体:
来源:转载
供稿:网友

opera, 作为 a-grade 浏览器,在现在的前端开发中务必支持。它很优秀,很不幸,bug是每个浏览器都不可避免的问题,opera亦难免。说说我发现的一个关于 clonenode 的问题。

问题:

假设我们有一个 form 节点(node)的引用,姑且名之为 elform,现在需要克隆一份,可以这么做:var elformclone = elform.clonenode(true).

在插入这份克隆到 dom 树中后,ie, firefox 均未发现问题。opera会产生这样的问题:表单内的字段无法引用。比如,假设刚才我们的elform 有一个 <input name="title" ... />, 此时你无法通过 elformclone.title 或者 elformclone['title'] 获取它。

解决方案

使用 document.createelement 创建 form 元素,然后设置该元素的 innerhtml(感谢 ms 发明了它) 为elform 的 innerhtml 即可:

var elformclone = document.createelement('form');
// 设置一些elform的原属性,有必要的话
...
elformclone.innerhtml = elform.innerhtml;
// 处理这个clone, 该咋办就咋办了
...

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表