关于easyUI在子页面增加显示tabs的一个问题

在父页面点个链接能动态看到子页面的情况太简单,请看easyUI官网:http://www.jeasyui.com/tutorial/layout/tabs2.php
现在说的是在子页面点个按钮也能触发增加子页面的情况。
情景是,在父页面上有个div如:

Html代码  

  1. <div class="easyui-tabs" id="main" fit="true" border="false">
  2.   <div title="Welcome" iconCls="icon-page" style="padding:20px;overflow:hidden;">
  3.   </div>
  4. </div>

在子页面上有个

Html代码  

  1. <a href="#" class="easyui-linkbutton" iconCls="icon-edit" plain="true" onclick="testAddSubPage(‘new tab‘,‘http://www.baidu.com‘)">test add subpage</a>

现在想点这个链接能弹出一个新的tab,tab里面的内容是百度主页。关键的问题来了,就是testAddSubPage这个function怎么写。

直接这样写是不行的:

Js代码  

  1. function testAddSubPage(title,url){
  2. var parentMain = window.parent.document.getElementById("main");
  3. var $main = $(parentMain);
  4. var content = ‘<iframe scrolling="auto" frameborder="0"  src="‘+url+‘" style="width:100%;height:100%;"></iframe>‘;
  5. $main.tabs(‘add‘,{
  6. title:title,
  7. content:content,
  8. closable:true
  9. }
  10. );
  11. }

这里虽然可以取到父页面那个id为main的div对象,但是把这个dom对象转化为jquery对象$main之后,$main.tabs(‘add‘,{...})这个方法死法报错不能通过。

改正的关键是用top.jQuery这个函数,这个函数具体出外我忘记了,用法看似是取得整个父页面对象,正确是写法:

Java代码  

  1. function testAddSubPage(title,url){
  2. var jq = top.jQuery;
  3. if (jq("#main").tabs(‘exists‘, title)){
  4. jq("#main").tabs(‘select‘, title);
  5. } else {
  6. var content = ‘<iframe scrolling="auto" frameborder="0"  src="‘+url+‘" style="width:100%;height:100%;"></iframe>‘;
  7. jq("#main").tabs(‘add‘,{
  8. title:title,
  9. content:content,
  10. closable:true
  11. });
  12. }
  13. }
时间: 2025-01-13 16:44:07

关于easyUI在子页面增加显示tabs的一个问题的相关文章

easyUI的iframe子页面操作父页面元素

曾经试过这样的方法 在iframe子页面获取父页面元素       代码如下:       $('#objId', parent.document); 这样可以获得父页面的元素,但是调用EasyUI的方法的时候,就会报错. 郁闷了很久很久,最终找到方案,写法的区别,如下: parent.$('# objId') 这样调用方法就不会报错 如: parent.$('# objId').tabs("add", { title: title, content: content, closabl

转 easyUI的iframe子页面操作父页面元素

曾经试过这样的方法 在iframe子页面获取父页面元素      代码如下:      $('#objId', parent.document); 这样可以获得父页面的元素,但是调用EasyUI的方法的时候,就会报错. 郁闷了很久很久,最终找到方案,写法的区别,如下: parent.$('#objId') 这样调用方法就不会报错 如: parent.$('#objId').tabs("add", { title: title,      content: content,      c

TERSUS画画一样开发软件 显示元件介绍-子页面及弹窗显示元件

TERSUS无代码手机电脑管理类软件开发,其中窗口类显示元件包括:子页面元件(Page Dialog).弹窗显示元件(Modal Dialog) 子页面元件(Page Dialog):是手机和平板移动端设计时所用到的新页面元件,移动端是由各个页面所组成的,在按钮等元件中放置一个页面,前端用户在点击按钮时,就会以新的页面覆盖旧页面,首页中,可以并列显示多个页面,如下: 1.页面元件一般有个头部和主内容区,头部中也有默认元件,所有元件,包括页面元件都可以单独定义显示样式"html.style&quo

bootstrap3-iframe-modal子页面在父页面显示模态框

本文灵感来自:http://www.cnblogs.com/chengxuyuanzhilu/p/5132328.html 子页面内容 //打开模态框 function openMySelectModiaOrPackageModal(){ var fatherBody = $(window.top.document.body); //定义页面存放模态窗口的元素 var id = 'iframeModalPages'; var dialog = $('#' + id); if (dialog.le

在easyui dialog的子页面内如何关闭弹窗

因项目需要在dialog中添加滚动条,所以就在div中加了iframe: 1 <div id="applyRefundDialog" style="display:none;overflow:hidden"> 2 <iframe id="applyframe" style="width: 100%; height: 100%;" scrolling="auto" frameborder=&

easyui dialog iframe模式,dialog 父级页面调用子页面(iframe)的方法

var content = '<iframe id="iframe1" name="iframeuuid" src="' + url + '" width="100%" height="98%" frameborder="0" scrolling="no"></iframe>';var div = document.createElement(

asp.net mvc后台操作之读写xml控制首页动态页面开关显示

一.背景 在asp.net mvc项目里,用户需要开拓几个活动版面,并以侧栏的方式呈现在首页右侧,几个活动时间不一致,为避免浏览者在活动未开放之时进入未开放的服务页面.因此不仅需要在活动代码中加入限制功能,也需要在前台取消不合时宜的页面的展示.后台效果图: 二.问题分析 要想控制页面开关显示,就得有存储开关信息的介质,将在后台产生的操作记录下来,并在浏览者加载首页之时能读取操作记录并达到控制页面开关的目的.因此,考虑两种介质储存开关记录信息,一是用数据库mysql,二是用xml.考虑到这对数据库

easyui datagrid 诡异的无法显示问题

举个应用场景的例子来说明: 在采购单的编辑页面,上方为采购单自身的属性信息,下方使用tabs控件,加入两个tab页,分别为采购明细列表(DataGrid)和审核记录列表(DataGrid),即一个主业务实体携带两个子业务实体的情况,子业务实体中datagrid采用js代码请求后台数据加载并显示. 在采购单编辑页面初始化的时候,使用tabs控件的add方法,设置Content属性为嵌入iframe function AddSubTab(name, url) { $("#subTabs")

vue 父页面中含子页面滑动,滑动结束,底部组件进行滑动

详见效果地址: https://pan.baidu.com/s/1Yin2q0Fh_6AQJTlbie7QMw 使用 1.v-touch 实现滑动效果,父级页面滑动,当父级含有子页面需要滑动功能hasClass("sm_img"),需要判断是否继续父级滑动,有的话子页面先滑动,通过upB去判断 if($(imgShowChild[that.childNum]).children().children().hasClass("sm_img")&&tha