2008-01-31
在iframe中进行dom编程的一点问题
在一个页面A中嵌入了一个iframe,现在需要在iframe的链接页面B中操作页面A中的一个元素,如下示例:
原来在同一页面中进行这样的类似操作是对的,但是刚才试了一下不行,浏览器提示有参数错误。
使用js进行DOM编程的时候,我知道不同浏览器对元素内容的判定是有区别的,比如同样是一个div元素,这样写"<div></div>";在ie中,div标签下是没有内容的,但是在firefox下div标签下的内容长度是1,因为firefox把空格也当成一个节点来处理。所以,进行清空元素内容操作时,在ie中
这样操作是正确的,但是在firefox下有找不到清除对象的问题,为了兼容我一般都是采用object.innerHTML = ""的做法,当然这样做会使运行效率有所降低。
但是,这里我就有点不明白了,难道frame之间进行dom操作时也会有冲突出现?最后还是采用innerHTML解决了问题:
晕死了,window.parent.document 对象创建链接,这样才对!
var logindiv = window.parent.document.getElementById("login");
var reload = "${reload}";
if(reload.length>0&&reload=="true")
{
logindiv.innerHTML = "";
var logoutLink = document.createElement("a");
logoutLink.href = "login?action=logout";
logoutLink.appendChild(document.createTextNode("Logout"));
logindiv.appendChild(logoutLink );
}
原来在同一页面中进行这样的类似操作是对的,但是刚才试了一下不行,浏览器提示有参数错误。
使用js进行DOM编程的时候,我知道不同浏览器对元素内容的判定是有区别的,比如同样是一个div元素,这样写"<div></div>";在ie中,div标签下是没有内容的,但是在firefox下div标签下的内容长度是1,因为firefox把空格也当成一个节点来处理。所以,进行清空元素内容操作时,在ie中
var olength= object.childNodes.length;
with (object) {
for (var j = 0; j < olength; j++) {
removeChild(children[0]);
}
}
这样操作是正确的,但是在firefox下有找不到清除对象的问题,为了兼容我一般都是采用object.innerHTML = ""的做法,当然这样做会使运行效率有所降低。
但是,这里我就有点不明白了,难道frame之间进行dom操作时也会有冲突出现?最后还是采用innerHTML解决了问题:
var logindiv = window.parent.document.getElementById("login");
var reload = "${reload}";
if(reload.length>0&&reload=="true")
{
logindiv.innerHTML = "<a href='login?action=logout'>Logout</a>";
}
晕死了,window.parent.document 对象创建链接,这样才对!
- 15:08
- 浏览 (412)
- 评论 (0)
- 分类: 技术研究
- 发布在 济南JavaEyer群 圈子
- 相关推荐
发表评论
- 浏览: 190881 次
- 性别:

- 来自: 山东济南

- 详细资料
搜索本博客
我的相册
image007
共 105 张
共 105 张
最近加入圈子
最新评论
-
让人头疼的新手
ql = " from OccurProj a where a.id=" + i ...
-- by kimmking -
让人头疼的新手
sql = " select sum(amount) from OccurPro ...
-- by kimmking -
让人头疼的新手
这样的新人,为什么会转正,当初怎么过试用期的!这才是应该反思的!
-- by javaxy -
svg应用
你好,我目前在做的一个项目也是使用SVG做实时监控,目前已经实现了主要功能,但是 ...
-- by zpj888 -
让人头疼的新手
moneyworship 写道太恐怖了吧~~这..这..太刺激了~~ ???
-- by daoger






评论排行榜