这个javascript程序在ie里就可以改变颜色,但在谷歌浏览器就不行了,怎么解决啊?

父窗体test5.html<html><head><metahttp-equiv="Content-Type"content="text/html;charset=utf... 父窗体 test5.html <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>操作窗体</title>
</head>
<script>

var subwin=window.open("face.html","face","top=100,left=100,width=400,height=400");

alert(subwin.document)
function show(obj){
subwin.document.title="wwww"
subwin.document.bgColor=obj.value;
}
function subw(){
if(!subwin.closed){
subwin.close();
}
}
</script>
<body onUnload="subw()">

<input type="button" onclick="show(this)" value="red" ><br/>
<input type="button" onclick="show(this)" value="blue" ><br/>
<input type="button" onclick="show(this)" value="black" ><br/>
<input type="button"onclick="show(this)" value="yellow" ><br/>
</body>
</html>
子窗体 face.html <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>face</title>
</head>

<body>
<script>

function show(p){
opener.document.bgColor=p.value;
}
</script>

<input type="button" onclick="show(this)" value="red" ><br/>
<input type="button" onclick="show(this)" value="blue" ><br/>
<input type="button" onclick="show(this)" value="black" ><br/>
<input type="button"onclick="show(this)" value="yellow" ><br/>

</body>
</html>
展开
 我来答
魏蕤
2012-05-05 · TA获得超过426个赞
知道小有建树答主
回答量:231
采纳率:0%
帮助的人:243万
展开全部
恩,lz,我特意运行了你的代码。这是因为Chrome为了安全起见对window.open打开页面的脚本访问做了安全限制,如果window.open打开的子页面与它的父页面(即打开它的那个页面)不在同一个域,则子页面不能访问它的父页面的元素以及脚本,这就是所谓的同源策略了。由于lz你是直接打开文件访问页面而不是输入网址访问页面,所以Chrome把它们当做不同域的两个页面了,所以子页面window.opener.document值为undefined,lz可以在Chrome浏览器中alert一下看看是否如此。建议楼主将这两个页面部署到你的本地服务器上,比如本地的tomcat服务器上,通过网址范围,而不是直接打开,就可以成功了。
我是在你的代码基础上做了一些修改,仅供参考,楼主的代码是没有太大问题。
父页面:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>操作窗体</title>
<script>
var subwin = window.open("face.html","face","top=100,left=100,width=400,height=400");
function show(obj){
subwin.document.title = "wwww";
subwin.document.body.style.backgroundColor = obj.value;
}
function subw(){
if(!subwin.closed){subwin.close();}
}
</script>
</head>
<body onUnload="subw()">
<input type="button" onclick="show(this)" value="red" ><br/>
<input type="button" onclick="show(this)" value="blue" ><br/>
<input type="button" onclick="show(this)" value="black" ><br/>
<input type="button"onclick="show(this)" value="yellow" ><br/>
</body>
</html>
子页面:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>face</title>
<script>
function show(p){
console.log(window.opener);
window.opener.document.body.style.backgroundColor = p.value;
}
</script>
</head>
<body>
<input type="button" onclick="show(this)" value="red" ><br/>
<input type="button" onclick="show(this)" value="blue" ><br/>
<input type="button" onclick="show(this)" value="black" ><br/>
<input type="button" onclick="show(this)" value="yellow" ><br/>
</body>
</html>
pbxxxx
2012-05-05 · TA获得超过187个赞
知道小有建树答主
回答量:336
采纳率:100%
帮助的人:307万
展开全部
。。。多明显不行啊 就不是一个内核。去找个谷歌浏览器专用的吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式