我有个函数,openPragram(obj),在前台调用的时候是openPragram(this),我要获取id为window的div的bs属性,当前的点击事件是写在iframe中,要获取的元素在父div中,父div是未来元素。这种情况要怎么去获取,我已经能获取到这个元素,但不是当前双击事件的父元素,始终都是第一个父div的元素,我要获取当前的
前台父div页面,要获取的元素页面
<ul>
<foreach name="rel" item='li'>
<switch name="li['ptype']">
<case value="1"><li ondblclick="filewindow(this,1)" pid="{$li['pid']}" href="{$li['paddress']}"><div class='icon_img'><img width="100%" src="__PUBLIC__{$li['pimage']}"></div><div class="icon_font">{$li['pname']}</div></li></case>
<case value="9"><li ondblclick="filewindow(this,1)" pid="{$li['pid']}" href="{$li['paddress']}"><div class='icon_img'><img width="100%" src="__PUBLIC__/images/deskicon/folder.png"></div><div class="icon_font">{$li['pname']}</div></li></case>
</switch>
</foreach>
</ul>
前台事件页面
<body>
<div class="container">
<div class="system" id="system">
<foreach name="list" item="li">
<li url="{$li['paddress']}" ondblclick="openProgram(this)" pname="{$li['pname']}" pid="{$li['pid']}" href="{$li['paddress']}">
<svg class="icon" aria-hidden="true">
<use xlink:href="#icon-windows"></use>
</svg>
<div class="name">{$li['pname']}</div>
</li>
</foreach>
</div>
</div>
</body>
前台未来元素js函数
var window_div='<div id="window_div" zt="0"><div id="window"><div class="window_div_tools"><div class="window_div_nav"><li class="window_div_nav_left" title="后退" onclick="history.back()"><</li><li class="window_div_nav_right" title="前进" onclick="history.go(1)">></li></div><div id="window_title" class="window_div_tools_left fleft"></div><div class="window_div_tools_right fright"><li class="btn-nomal" id="minimize">-</li><li class="btn-nomal" id="Maximization">◻</li><li id="closewindow" class="btn-danger" onclick=closewindow(this)>×</li></div></div><iframe id="window_div_content" name="window_div_content" class="window_div_content" src=""></iframe id="content"><div id="window_div_corner_rightbottom"><svg class="icon" aria-hidden="true"><use xlink:href="#icon-tuodong_icon"></use></svg></div></div></div>';
function filewindow(a,type){
var bsf=uuid(8,16);
var parentdiv=$(window_div);
var newdiv=parentdiv.attr('bs',bsf);
$('#desk').append(newdiv);
//判断调用函数的来源
switch(type){
//桌面图标
case 1:
//获取应用方法
var url=a.getAttribute('href');
$('[bs="'+bsf+'"] #window_div_content').attr('src',url);
//获取应用名
var title=a.lastChild;
$('[bs="'+bsf+'"] #window_title').text(title.innerHTML);//把缩略图放到任务栏
var thumbnail=a.getElementsByTagName('img')[0].getAttribute('src')?a.getElementsByTagName('img')[0].getAttribute('src'):'./Public/images/deskicon/1.jpg';
var li=$('.taskbar-left li :last');
li.after('<li bsf='+bsf+' title='+title.innerHTML+' style="margin:0 2px;height:32px;padding-top:6px;border-bottom:2px solid #FFF;"><img src='+thumbnail+' width="25px"></li>');
break;
//右键菜单
case 2:
//获取应用方法
var url=a.getAttribute('href');
$('[bs="'+bsf+'"] #window_div_content').attr('src',url);
//获取应用名
$('[bs="'+bsf+'"] #window_title').text(a.innerHTML);
//把缩略图放到任务栏
var li=$('.taskbar-left li :last');
li.after('<li bsf='+bsf+' title='+a.innerHTML+' style="margin:0 2px;height:32px;padding-top:6px;border-bottom:2px solid #FFF;"><img src=./Public/images/deskicon/1.jpg width="25px"></li>');
break;
}
var div=parentdiv.offset();
parentdiv.css('top',div.top+10+'px');
parentdiv.css('z-index',2100).siblings().css('z-index',100);
$('[bsf="'+bsf+'"]').css('background','rgba(255,255,255,0.3').siblings().css('background','');
}
第二个js函数
function openProgram(obj){
// var object=obj;
var pid=$(obj).attr('pid'); //程序id
var pname=$(obj).attr('pname'); //程序名称
var url=$(obj).attr('href'); //控制器地址
// var div=this.parent.document.getElementById('window_div').getAttribute('bs');
// var div=$(obj).parents('#window_div',window.parent.document).attr('bs');
// var div=window.parent.document.getElementById("window_div").getAttribute('bs');
var div=$('#window_div',parent.document).attr('bs'); //当前窗口的唯一标识
alert(div)
$('#window_div_content',window.parent.document).attr('src',url); //更换当前窗口的url地址