一、window.open关闭子页面时刷新父页面

window.opener.location.reload();

window.opener=null;window.close();

二、AJAX返回后window.open不被阻挡

1.可以把异步变同步async: false

2.异步下处理方法

var newwindow=window.open("about:blank");
window.focus();
$.ajax({
url:form.attr('action'),
data:form.serialize(),
dataType: 'json',
}).done(function(o){
if(o.success){
if(o.data){
newwindow.location.href="http://www.zgxrw.com";
newwindow.focus();
}else{
newwindow.close();
}
}else{
newwindow.close();
}
}).fail(function(){newwindow.close();});

  

但是这种方法带来一个问题,就是当失败后,会先打开一个窗口,然后再关闭,虽然一闪而过,但是对用户总是一个困扰,相对来说还不如将ajax改成同步,毕竟现在的互联网的访问速度,不至于会将浏览器锁住太长时间。

或者

方法1:
<input type="button" class="preview" value="预览"/>
$('.preview').live('click', function(){
  var w = window.open();//发请求之前打开一个空页面
  $.ajax({..., success:function(msg){
    setTimeout(function(){w.location='http://www.baidu.com';}, 0);//0秒后给新窗口的localtion赋值
  }});
});
方法2:
<input type="button" value="预览" onclick="if(preview()){window.open('http://www.baidu.com');}"/>
function preview(){
  var bol = false;
  $.ajax({async:false,...,success:function(msg){
    if (msg == 1) {
      bol = true;
    } else {
      bol = false;
    }
  }});
  return bol;
}

javascrpt 代码的更多相关文章

  1. Js表单验证控件-02 Ajax验证

    在<Js表单验证控件(使用方便,无需编码)-01使用说明>中,写了Verify.js验证控件的基本用法,基本可以满足大多数验证需求,如果涉及服务端的验证,则可以通过Ajax. Ajax验证 ...

  2. 如何使用Web3.js API 在页面中进行转账

    本文介绍如何使用Web3.js API 在页面中进行转账,是我翻译的文档Web3.js 0.2x 中文版 及 区块链全栈-以太坊DAPP开发实战 中Demo的文章说明. 写在前面 阅读本文前,你应该对 ...

  3. 介绍两个非常好用的Javascript内存泄漏检测工具

    内存泄漏对开发者来说一般很难检测因为它们是由一些大量代码中的意外的错误引起的,但它在系统内存不足前并不影响程序的功能.这就是为什么会有人在很长时间的测试期中收集应用程序性能指标来测试性能. 最简单的检 ...

  4. 带你快速上手前端三剑客之css

    CSS介绍 ​ CSS(Cascading Style Sheet , 层叠样式表)定义如何显示HTML元素.当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染) 组成 ​ 每个CS ...

  5. django+javascrpt+python实现私有云盘代码

    丁丁:由于篇幅有限,这里暂时只展示python后端代码,前端js代码后面上传,有需要的也可以留言私信我. 1.view.py 使用用户.部门.公司等相关账号的创建,已经个人,部门账号的冻结,删除,相关 ...

  6. Web前端代码页面布局总结

    一.  html (1)编码:所有编码均采用xhtml,标签必须闭合,属性值用双引号包括,编码统一为utf-8. (2)语义化:语义化html,正确使用标签. (3)文件命名:命名以中文命名,依实际模 ...

  7. Asp.net mvc怎么在razor里写js代码

    我试图在Razor里写JS代码,但是不行 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 3 ...

  8. JavaScrpt简单介绍

    什么是javaScrpt javascript因为兼容于ECMA标准,因此也称为ECMAScript.JavaScript作为一种脚本语言,已经被广泛地应用于Web页面当中,通过嵌入HTML来实现各种 ...

  9. webstorm添加自定义代码块

    widnow下使用alt+ctrl+s 调出setting面板 mac下使用command+,(逗号)调出Preferences面板 搜索live template选中js,在javascrpt 模板 ...

随机推荐

  1. linux下配置tomcat集群的负载均衡

    linux下配置tomcat集群的负载均衡 一.首先了解下与集群相关的几个概念集群:集群是一组协同工作的服务实体,用以提供比单一服务实体更具扩展性与可用性的服务平台.在客户端看来,一个集群就象是一个服 ...

  2. nohup和& 区别

           &是指在后台运行,但当用户推出(挂起)的时候,命令自动也跟着退出 &的意思是在后台运行,  ./a.out & 的时候, 即使你用ctrl C,  那么a.out ...

  3. Mac下安装mysql8.0.11

    1.下载MySQL Community 版本:8.0.11,本次例子是以dmg安装的方式,下载的文件名为:mysql-8.0.11-macos10.13-x86_64.dmg 下载地址:https:/ ...

  4. ubuntu 安装 2.10.x版本的scala

    Ubuntu 14.04.1 LTS上默认的scala版本是2.9的,而最新版本的spark-1.3需要最低版本的scala版本为2.10.x,先使用apt-get remove scala将机器上的 ...

  5. macbook安装homebrew并更换清华源

    1.官网brew.sh复制安装脚本. 2.自动安装完成后,更换为清华源来加快速度.网址为:https://mirrors.tuna.tsinghua.edu.cn/help/homebrew 3.更换 ...

  6. eclipse 安装properties编辑器,显示中文

    如图添加,地址为: propedit.sourceforge.jp/eclipse/updates/ 选择红框,只安装这个即可 然后一直安装,再接受同意,最后重启eclipse就安装好了 重启后发现文 ...

  7. ios 精简日历

    网上其他人写的日历类功能都很齐全,比较繁杂,对于想看看日历基础实现然后自己绘制日历的我来说不太方便,就自己整理了一个极精简的日历出来,大家看了之后应该能多少理解日历该怎么自定义,很简单. 我的小dem ...

  8. 【Unity】9.2 如何添加粒子组件

    分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 粒子系统是作为组件附加到游戏对象上的,有两种添加办法. 二.方式1--添加已制作好的预制体 第1种方式是直接添加已经制作 ...

  9. 从头认识多线程-1.8 迫使线程停止的方法-暴力Stop方法

    这一章节我们来讨论一下暴力Stop方法. 1.使用样例 package com.ray.deepintothread.ch01.topic_8; public class StopByStopMeth ...

  10. 菜鸟学EJB(一)——第一个实例

    EJB用了那么长时间了,从来没写过关于它的东西,挺对不住它的.今天先写一个简单的小实例,虽然小但是却能体现出EJB的核心——分布式.我们可以将业务逻辑的接口跟实现部署到一台机器上,将调用它们的客户端部 ...