每次重新写一个功能的时候,都能发现以前写的并不太好,都可以改进,奇怪的是我还是我,为什么曾经的我就想不起来要这么写,比如下面两段代码

历史代码:

if (infoTablePage != null) { /*对象不为空,那肯定是这里主动创建的,分为【依然是打开的】和【已经关闭掉】两种状态*/
if (infoTablePage.closed) {
infoTablePage = window.open(pageurl + '?sceneid=' + value.id, pagename);
} else {
infoTablePage.openedPage2serchScene(value.id);
infoTablePage.focus();
}
} else { /*对象为空,但是监控页面也有可能是打开的状态,那么分为【打开】和【未打开】两种状态,打开就获取打开的页面*/
infoTablePage = window.open('', pagename);
if (infoTablePage.openedPage2serchScene) {
infoTablePage.openedPage2serchScene(value.id);
infoTablePage.focus();
} else {
infoTablePage = window.open(pageurl + '?sceneid=' + value.id, pagename);
}
}

如今重新利用这个功能,发现可以这么写:

/*对象为空,但是监控页面也有可能是打开的状态,那么分为【打开】和【未打开】两种状态,打开就获取打开的页面*/
if (infoTablePage == null) {
infoTablePage = window.open('', pagename);
} /*如果获取到了页面,就调用页面的初始化台站的方法,否则就不会有方法可以调用,需要打开这个页面*/
if (infoTablePage.openedPage2serchScene && !infoTablePage.closed) {
infoTablePage.openedPage2serchScene(value.id);
infoTablePage.focus();
} else {
infoTablePage = window.open(pageurl + '?sceneid=' + value.id, pagename);
}

js弹开页面并调用方法的更多相关文章

  1. Angular.js中处理页面闪烁的方法详解

    Angular.js中处理页面闪烁的方法详解 前言 大家在使用{{}}绑定数据的时候,页面加载会出现满屏尽是{{xxx}}的情况.数据还没响应,但页面已经渲染了.这是因为浏览器和angularjs渲染 ...

  2. JS获取当前页面URL的方法

    1.JS获取当前页面URL的方法小结 ①. document.URL;                           http://localhost:81/Test/1.htm/id/12 ② ...

  3. javascript(js)自动刷新页面的实现方法总结

    自动刷新页面的实现方法总结: 1) <meta http-equiv="refresh"content="10;url=跳转的页面"> 10表示间隔 ...

  4. iframe父子页面相互调用方法,相互获取元素

    父页面获取子页面 var childWin = document.getElementById('setIframe').contentWindow;//获取子页面窗口对象 childWin.send ...

  5. JS函数的定义与调用方法

    JS函数调用的四种方法:方法调用模式,函数调用模式,构造器调用模式,apply,call调用模式 1.方法调用模式:先定义一个对象,然后在对象的属性中定义方法,通过myobject.property来 ...

  6. 【转】JS函数的定义与调用方法

    JS函数调用的四种方法:方法调用模式,函数调用模式,构造器调用模式,apply,call调用模式 1.方法调用模式:先定义一个对象,然后在对象的属性中定义方法,通过myobject.property来 ...

  7. js弹框的3种方法

    js的三种弹框的方法 1.第一种 :  alert("1"); 2.第二种 :  window.open("Tests2.html"); var r = con ...

  8. js 弹出新页面,避免被浏览器、ad拦截的一种办法

    以绑定click弹窗的方式,改为普通的链接,即 a[target=_blank],在点击打开新窗口之前,修改其href. 绑定mousedown,鼠标点击执行完成前修改href. 绑定focus,保证 ...

  9. JS设置打印页面并调用本地打印机打印页面

    <script type="text/javascript"> var hkey_key; var hkey_root = "HKEY_CURRENT_USE ...

随机推荐

  1. 跳過 Windows RT的UI

    RT启动进入常规桌面 微软Surface RT发布的时间已经不短了,相信很多朋友都已经熟悉了这个全新的平板,并且已经上手.Surface RT开机默认进入的界面为Windows UI,这对于经常使用A ...

  2. Solid Edge如何制作爆炸图

    1 最方便的方式是自动爆炸 点击应用程式-"爆炸-涂彩-动画"   选择要爆炸的对象(默认是顶层组立件),要爆炸的距离(默认系统根据零件大小自动生成距离,你也可以手动设定距离)即可 ...

  3. Hibernate插入错误:GenericJDBCException: could not insert:

    数据库中一般不能建立user(表名为User)表,将User类改名,又一次建立映射,问题就能够解决 当然,还有还有一种情况.就是类中id类型错误.要设置为Integer型才干够设置自己主动增长,否则也 ...

  4. 从hbase读取数据优化策略和实验对照结果

    起因:工作须要.我须要每5分钟从hbase中.导出一部分数据,然后导入到ES中.可是在開始阶段编写的python脚本,我发现从hbase读取数据的速度较慢,耗费大量的时间.影响整个导数过程,恐怕无法在 ...

  5. JavaScript解析顺序和变量作用域

    JavaScript基础之变量作用域. 一. 1.全局变量:全局变量的意思就是,在代码的不论什么地方都能够訪问到.注意:未定义 直接赋值的变量拥有全局属性. 2.局部变量:局部变量的意思就是,变量的作 ...

  6. Andriod开发技巧——Fragment的懒载入

    我们在做应用开发的时候.一个Activity里面可能会以viewpager(或其它容器)与多个Fragment来组合使用.而假设每一个fragment都须要去载入数据.或从本地载入.或从网络载入,那么 ...

  7. jQuery的立即调用表达式

    立即调用表达式 任何库与框架设计的第一要要点就是解决命名空间与变量污染的问题.jquery就是用javascript函数作用域的特性,采用立即调用表达式包裹了自身的方法来解决这个问题的. jQuery ...

  8. [转]Android程序框架设计

    这篇文章主要内容来自于之前我讲的一个PPT文档,现在将其整理如下.欢迎指正.以下的内容都是来自于我自身的经验,欢迎大家多提自己的建议. 1.一些概念 模式的定义: 每个模式都描述了一个在我们的环境中不 ...

  9. 树莓派玩耍笔记1 -- 开箱 &amp; 安装系统以及简单配置

    零.前言 树莓派是什么? 吃的么? 呵呵,假设您连这个还不知道,真是out 了. 麻烦出门左拐.百度去(或者,看看官网去?),算了.还是粘贴一些大家都知道的树莓派百科吧: 树莓派由注冊于英国的慈善组织 ...

  10. Codeforces Round #119 (Div. 2)A. Cut Ribbon

    A. Cut Ribbon time limit per test 1 second memory limit per test 256 megabytes input standard input ...