yaoyuanze 2017-09-04 11:43
浏览 1028

各位大神求js或jq,获取当前对象的iframe父窗口元素

我有个函数,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()">&lt;</li><li class="window_div_nav_right" title="前进" onclick="history.go(1)">&gt;</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)>&times;</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地址

  • 写回答

0条回答

    报告相同问题?

    悬赏问题

    • ¥15 oracle集群安装出bug
    • ¥15 关于#python#的问题:自动化测试
    • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
    • ¥15 教务系统账号被盗号如何追溯设备
    • ¥20 delta降尺度方法,未来数据怎么降尺度
    • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
    • ¥15 再不同版本的系统上,TCP传输速度不一致
    • ¥15 高德地图2.0 版本点聚合中Marker的位置无法实时更新,如何解决呢?
    • ¥15 DIFY API Endpoint 问题。
    • ¥20 sub地址DHCP问题