问各路大神一个简单的问题
2个页面 一个a.jsp 和一个 b.jsp
2个页面都有一个<div class='abc'></div>
在a页面内 用window.open()打开b.jsp
a页面有
function Hide(){
$(".abc").hide();
}
如何在b.jsp中使用a.jsp内的 Hide(),且a.jsp内的<div class='abc'></div>不会发生任何变化
求指导
------解决方案--------------------b.jsp中使用opener得到a.jsp的window作用域,a.jsp要想引用b.jsp,open的时候存储句柄。
iframe和父页,window.open打开页面之间的引用
opener["a.jsp中的函数名称"]()
不过注意b.jsp调用a.jsp的方法的时候操作的实际是a.jsp的DOM对象,要想操作b.jsp的,需要存储句柄
var b=window.open("b.jsp");
function Hide(){
$(b).find(".abc").hide();
}
------解决方案--------------------我今天认真想了你这个问题,我觉得可以这样写:
a.html:
<script>
function Hide(e){
$(e).hide();
}
</script>
<div class="abc" onclick="Hide(this)">a<div>
b.html:
<div class="abc" onclick="opener['Hide'](e)">b</div>
点击a.html的div 可以隐藏,点击b.html的div也可以隐藏。
你也可以不传参数,在Hide()方法里这样写:
$(win.document).find(".abc").hide();
里面的win 为 全局活动对象 var win = window.open("b.html");