在一个页面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 对象创建链接,这样才对!