window.open 订阅
计算机语言,程序中参数的一种,下面详细介绍1。 展开全文
计算机语言,程序中参数的一种,下面详细介绍1。
信息
pageURL
子窗口路径
name 
子窗口句柄
性    质
计算机语言,程序中参数的一种
外文名
window.open
window.open简介
window.open()支持环境:JavaScript1.0+/JScript1.0+/Nav2+/IE3以上版本+/Opera3+Fireforx基本语法:window.open(pageURL,name,parameters)其中:pageURL 为子窗口路径name 为子窗口句柄parameters 为窗口参数(各参数用逗号分隔)window.open(url,name,features,replace)Arguments - 参数url可选字符串参数,指向要在新窗口中显示的文档的URL。如果省略该参数,或者参数为空字符串,新窗口不会显示文档。name可选字符串参数,该参数可以设置新窗口的名称。相同name的窗口只能创建一个,要想创建多个窗口则name不能相同。name 不能包含有空格。features可选字符串参数,该参数用于设定新窗口的功能。因为该参数是可选的,如果没有指定该参数,新窗口有所有的标准功能。replace可选布尔参数,设置新窗口中的操作历史的保存方式。true - 创建新历史记录false - 替换旧的历史记录
收起全文
精华内容
下载资源
问答
  • window.location是window对象的属性,而window.openwindow对象的方法 window.location是你对当前浏览器窗口的URL地址对象的参考! window.open是用来打开一个新窗口的函数! 2. window.open不一定是打开一个新...

    使用js的同学一定知道js的location.href的作用是什么,但是在js中关于location.href的用法究竟有哪几种,究竟有哪些区别,估计很多人都不知道了。

    一、location.href常见的几种形式

    目前在开发中经常要用到的几种形式有:

    经常见到的大概有以上几种形式。

    注:①如果页面中自定义了frame,那么可将parent、self、top换为自定义frame的名称,效果是在frame窗口打开url地址。

    ②此外,window.location.href=window.location.href;和window.location.Reload();都是刷新当前页面。区别在于是否有提交数据。当有提交数据时,window.location.Reload()会提示是否提交,window.location.href=window.location.href;则是向指定的url提交数据.

    ③用window.open()打开新页面

    但是用window.location.href="" 却是在原窗口打开的.

    有时浏览器会一些安全设置window.open肯定被屏蔽。例如避免弹出广告窗口。

    二、location.href不同形式之间的区别

    那么,这几种形式的跳转究竟有什么区别呢?

    直接讲定义,你肯定不会理解透彻,下面我来贴四个html代码,用实际的例子讲解。

    a.html:

    b.html:

    c.html:

    d.html:

    a.html,b.html,c.html,d.html通过iframe给联系到了一起,那么它们有什么的联系呢?

    观察代码,我们可以看出:

    a.html里面嵌着b.html;

    b.html里面嵌着c.html;

    c.html里面嵌着d.html

    运行a.html,贴图一如下:

    9a4469b8c0f338ab827a32a00afdb51b.png

    下面来测试上述几种写法.

    在d.html里面head部分写js:

    再次运行a.html,点击那个"跳转" 按钮,运行结果贴图二如下:

    03c4f29ea466b9b129269b35203dc38c.png

    对比图一和图二的变化,你会发现d.html部分已经跳转到了百度的首页,而其它地方没有发生变化。这也就解释了"本页跳转"是什么意思。

    好,再来修改d.html里面的js部分为:

    运行a.html后,再次点击"跳转" 按钮,运行结果贴图三如下:

    23c41c10b67f3b774402106ffcdb33b4.png

    对比图一和图三,你会发现a.html中嵌套的c.html部分已经跳转到了百度首页。

    分析:我点击的是a.html中嵌套的d.html部分的跳转按钮,结果是a.html中嵌套的c.html部分跳转到了百度首页,这就解释了"parent.location.href是上一层页面跳转"的意思。

    再次修改d.html里面的js部分为:

    运行a.html后,再次点击"跳转" 按钮,

    你会发现,a.html已经跳转到了百度首页。

    分析:我点击的是a.html中嵌套的d.html部分的跳转按钮,结果是a.html中跳转到了百度首页,这就解释了"top.location.href是最外层的页面跳转"的意思。

    三、location.href总结

    看完上面的讲解之后,在来看看下面的定义你就会非常明白了:

    "top.location.href"是最外层的页面跳转

    "window.location.href"、"location.href"是本页面跳转

    "parent.location.href"是上一层页面跳转.

    location是window对象的属性,而所有的网页下的对象都是属于window作用域链中(这是顶级作用域),所以使用时是可以省略window。而top是指向顶级窗口对象,parent是指向父级窗口对象。

    四、window.location.href和window.open的区别

    1.

    window.location是window对象的属性,而window.open是window对象的方法

    window.location是你对当前浏览器窗口的URL地址对象的参考!

    window.open是用来打开一个新窗口的函数!

    2.

    window.open不一定是打开一个新窗口!!!!!!!!

    只要有窗口的名称和window.open中第二个参数中的一样就会将这个窗口替换,用这个特性的话可以在iframe和frame中来代替location.href。

    οnclick="self.frames['aa'].location.href='1.htm'">的效果一样

    3.

    在给按钮、表格、单元格、下拉列表和DIV等做链接时一般都要用Javascript来完成,和做普通链接一样,可能我们需要让链接页面在当前窗口打开,也可能需要在新窗口打开,这时我们就可以使用下面两项之一来完成:

    window.open 用来打开新窗口

    window.location 用来替换当前页,也就是重新定位当前页

    可以用以下来个实例来测试一下。

    4.

    window.location或window.open如何指定target?

    这是一个经常遇到的问题,特别是在用frame框架的时候

    解决办法:

    window.location 改为 top.location 即可在顶部链接到指定页

    window.open("你的网址","_top");

    5.

    window.open 用来打开新窗口

    window.location 用来替换当前页,也就是重新定位当前页

    用户不能改变document.location(因为这是当前显示文档的位置)。

    window.location本身也是一个对象。

    但是,可以用window.location改变当前文档 (用其它文档取代当前文档),而document.location不是对象。

    服务器重定向后有可能使document.url变动,但window.location.href指的永远是访问该网页时用的URL.

    大多数情况下,document.location和location.href是相同的,但是,当存在服务器重定向时,document.location包含的是已经装载的URL,而location.href包含的则是原始请求的文档的URL.

    6.

    window.open()是可以在一个网站上打开另外的一个网站的地址

    而window.location()是只能在一个网站中打开本网站的网页

    展开全文
  • window.open打印功能

    2021-10-15 10:58:45
    window.open(url,'','width=400,height=400,menu=no,toolbar=no')调出窗口进行打印 for循环,延迟打印功能实现——闭包 printCode(row, obj, arr, d) { for (var i = 0; i < arr.length; i++) { (function (i) { ...

    今天遇到一个需求,就是在浏览器中打印标签,其实无论是打印标签还是A4纸,最终功能的实现效果都是大同小异的。

    最终效果图:
    在这里插入图片描述

    打印函数的封装

    function print(data) {
      var that = this;
      var _str = "";
      for (var o in data) {
          if (data[o] != -1) {
              if (data[o] == undefined) {
                  that.$message({
                      message: "存在为空的数据",
                      type: 'error'
                  });
                  return;
              }
              _str += o + "=" + data[o] + "&";
          }
      }
      var _str =encodeURI(_str.substring(0, _str.length - 1));
    try {		
           window.open(httpUrl + _str, "", "width=400,height=400,menu=no,toolbar=no");
    }
    catch (e) {
          console.msg("调用出现异常,请用ie或调整到兼容模式下打印" + e.name + e.message);
      }
    }
    

    根据上面封装的打印函数,可以看出整体逻辑就是:根据传入的参数,先判断是否有空的数据,如果有空数据,则不能进行打印,如果都是有数据的情况,则进行路径的拼接,然后通过window.open的方式来进行调取打印路径从而实现打印功能。

    window.open(url,'','width=400,height=400,menu=no,toolbar=no')调出窗口进行打印

    for循环,延迟打印功能实现——闭包

    printCode(row, obj, arr, d) {
        for (var i = 0; i < arr.length; i++) {
            (function (i) {
                setTimeout(() => {
                    var data = {
                        Type: "PrintBomLabel",
                        GroupNo: d && d.groupNo || obj.groupNO || obj.groupNo,
                        OrderNo: d && d.orderNO || obj.orderNO,
                        partNo: row.partNo,
                        mfg: row.mfg,
                        package: row.pack,
                        Parameter: row.parameter,
                        Designator: row.designator,
                        OutSystemRelationId: row.outSystemRelationId,
                        proNum: arr[i].proNum,
                        flag: obj.hasReplenish ? 1 : 0,
                        id: arr[i].id
                    }
                    console.log(data);
                    $WmsPrint.BomPoint(data);
                }, 500 * i);
            })(i)
        }
    },
    

    由于arr是一个数组,需要将数组中的每一项都拿出来进行打印,而且打印要有间隔,因此要用到循环,还要延迟。

    如果在for循环中,调用函数,则很可能出现闭包问题,也就是作用域内,参数循环,但是函数未执行,当函数执行时,参数已变为最后一项。最终出现的结果就是执行多次最后一次参数。

    为了能够解决这个闭包导致的问题,可以通过立即执行函数的方式来处理。

    立即执行函数的写法

    (function(i){
    	//函数体
    })(i)
    

    for循环中的参数传入到立即执行函数中,然后用参数i接收,此时函数体中的参数i就是正常的参数了。

    由于要延迟打印,则可以通过setTimeout(()=>{函数体},i*500)

    上面代码中的$WmsPrint.BomPoint 就是打印封装的函数:

    部分代码如下:

    /*
        全局打印js
    */
    //当前配置环境 修改此处切换环境 
    var httpUrl="xxxxxxxx?";
    /* js工具 */
    setQueryConfig=function(data) {
         var that = this;
         var _str = "";
         for (var o in data) {
             if (data[o] != -1) {
                 if (data[o] == undefined) {
                     window.alert('存在为空的数据');
                     //that.$message({
                     //    message: "存在为空的数据",
                     //    type: 'error'
                     //});
                     return;
                 }
                 _str += o + "=" + data[o] + "&";
             }
         }
         var _str =encodeURI(_str.substring(0, _str.length - 1));
    
    
    try {		
             window.open(httpUrl + _str, "", "width=400,height=400,menu=no,toolbar=no");
    }
    catch (e) {
             console.msg("调用出现异常,请用ie或调整到兼容模式下打印" + e.name + e.message);
         }
     }
    var $WmsPrint = {	
        ///点料打印
           BomPoint:function(data)
    	{
           
                     var parmdata = {
                       Type: "PrintBomLabel",
                       GroupNo: data.GroupNo,              //订单包
                       OrderNo: data.OrderNo,              //订单
                       partNo:data.partNo,                 //型号
                       mfg: data.mfg,                      //品牌
                       package: data.package,              //封装
                       Parameter: data.Parameter,          //参数
                       Designator: data.Designator,        //位号
                       OutSystemRelationId:data.OutSystemRelationId,
                       proNum: data.proNum,              //数量
                       flag: data.flag,                  //是否补料
                       id: data.id,                      //点料Id
               }
                   setQueryConfig(parmdata);		
    	}
    }
    

    上面的打印方法是通过标签纸打印,因为标签纸的尺寸是比较小的,尺寸是400mmX400mm,因此再用window.open时,通过设置尺寸,来限制打印区域。

    如果是要实现A4纸的打印,则首先要排版,自己写dom样式及数据渲染,然后调用window.print的方式来实现。

    展开全文
  • 最近项目中遇到一个webview...作web开发的朋友应该知道,这个须要在A中经过window.open()开启B,在B中选择完毕和调用window.close()关闭B,而且把获取的值传递给A。因为我不是作web开发的,表述可能不是特别对,可...

    最近项目中遇到一个webview开发时的问题,web前端开发人员在网页上实现了一个功能。功能是在A html页面,打开一个新的B html页面,而后再B页面中选择一个联系人,把值返回给A页面。作web开发的朋友应该知道,这个须要在A中经过window.open()开启B,在B中选择完毕和调用window.close()关闭B,而且把获取的值传递给A。因为我不是作web开发的,表述可能不是特别对,可是大概就是这么个意思。js中调用window.open(),其实会回调咱们WebChromeClient中的javascript

    onCreateWindow(WebView view, boolean isDialog,

    boolean isUserGesture, Message resultMsg) 方法,个人理解是相似于咱们浏览器里面的新开一个窗口同样。这时候咱们须要本身重写这个方法,在这个方法中经过新建立一个WebView来加载新的网页地址(固然你不重写这个方法,其实也能打开B,可是用的同一个webview加载的B页面,这时候你在B中调用js的window.close(),系统发现当前只有一个窗口,这个就致使window.close()方法没有任何做用)。具体代码以下:

    @Override

    public boolean onCreateWindow(WebView view, boolean isDialog,

    boolean isUserGesture, Message resultMsg) {//html中调用window.open(),会回调此函数

    DebugUtil.log("建立新窗口:" + isDialog + ";" + isUserGesture + ";"

    + resultMsg);

    newWebView = new WebView(OAWebActivity.this);//新建立一个webview

    initWebView(newWebView);//初始化webview

    fl_web_activity.addView(newWebView);//把webview加载到activity界面上

    WebView.WebViewTransport transport = (WebView.WebViewTransport) resultMsg.obj;//如下的操做应该就是让新的webview去加载对应的url等操做。

    transport.setWebView(newWebView);

    resultMsg.sendToTarget();

    return true;

    // return super.onCreateWindow(view, isDialog, isUserGesture,

    // resultMsg);

    }重写这个方法是新建立webview去加载新的地址,相似于新开一个浏览器窗口的意思(我的理解)。注意:webview还须要设置以下几个属性(红色部分):

    WebSettings webSettings = wv.getSettings();

    html

    webSettings.setJavaScriptCanOpenWindowsAutomatically(true);//支持js调用window.open方法

    webSettings.setAllowFileAccess(true);// 设置容许访问文件数据

    webSettings.setSupportMultipleWindows(true);// 设置容许开启多窗口

    webSettings.setDomStorageEnabled(true);//

    webSettings.setJavaScriptEnabled(true);// 设置支持javascript

    固然既然重写了建立window的方法,也记得把关闭window的方法重写一下:

    /*

    */

    @Override

    public void onCloseWindow(WebView window) {//html中,用js调用.close(),会回调此函数

    super.onCloseWindow(window);

    DebugUtil.err("关闭当前窗口");

    if (newWebView != null) {

    fl_web_activity.removeView(newWebView);

    }

    }

    其实就是把新的webview移出界面。固然还能够把新建立的webview的资源回收掉,这里只写一个思路。

    展开全文
  • window.open() window.history

    2021-03-22 21:34:41
    window.open('https://www.imooc.com','_blank','width=600px,height=400px,left=0,top=200'); } </script> 浏览器中,返回当前页面之前浏览过的第二个历史页面,代码如下: window.history.go(-2)
    <button onclick="open1()">open</button>
     <script>
       function open1(){
        window.open('https://www.imooc.com','_blank','width=600px,height=400px,left=0,top=200');
       }
    </script>
    

    浏览器中,返回当前页面之前浏览过的第二个历史页面,代码如下:
    window.history.go(-2);
    注意:和在浏览器中单击两次后退按钮操作一样。
    同理,返回当前页面之后浏览过的第三个历史页面,代码如下:
    window.history.go(3);

    展开全文
  • Displays a file in the named window.public:System::Windows::Forms::HtmlWindow ^ Open(Uri ^ url, System::String ^ target, System::String ^ windowOptions, bool replaceEntry);public System.W...
  • this.p={ m:2,b:2,loftPermalink:'',id:'fks_095075086083085070087082074068093082082067082081',blogTitle:'window.open的使用方法以及参数说明',blogAbstract:'一、window.open()支持环境:JavaScript1.0+/...
  • window.open 被浏览器拦截问题 window.open() 的作用是创建一个新的浏览器窗口用来打开相关的资源,这是一个原生的 Javascript API 接口 有关 window.open() 的基本使用可以参考 mozilla 提供的 API文档:window....
  • 我们在开发过程中通过window.open打开一个新窗口,但是现在浏览器和防病毒软件阻止了这个功能弹出页面,一般来说,我们只能通过设置信任来使用页面,但是在后台开发过程中,我们仍然通过这个方法打开页面,这里爱站...
  • 一、基本语法:window.open(pageURL,name,parameters)其中:pageURL 为子窗口路径name 为子窗口名字parameters 为窗口参数(各参数用逗号分隔)二、示例window.open(‘page.html‘,‘newwindow‘,‘height=500,width=...
  • 今天用ajax做个简单例子登录成功后跳转到展示数据页面,我想要登录成功后用layer提示一下再跳转页面,但是我用window.location.href会直接跳过我的layer提示,就想着让弹窗先出来几秒然后再跳转,现在已经解决,分享给...
  • 今天给大家带来js一个方法,window.open打开新窗口详解定义和用法open() 方法用于打开一个新的浏览器窗口或查找一个已命名的窗口。语法window.open(URL,name,specs,replace)参数说明URL可选。打开指定的页面的URL。...
  • 项目中遇到的问题,使用window.open()开一个页面之后,cookie会消失,所以无法一键切肤不管作用,解决方案如下:window.open()总结:window.open("sUrl","sName","sFeature","bReplace");sUrl:可选项。字符串(String...
  • windows.open()用法介绍:一、window.open()支持环境:JavaScript1.0+/JScript1.0+/Nav2+/IE3+/Opera3+二、基本语法:window.open(pageURL,name,parameters)其中:pageURL 为子窗口路径name 为子窗口句柄parameters ...
  • function windowOpen(url,typeName){ var xhr = new XMLHttpRequest(); var fileName = window.fileName + typeName; // 文件名称 xhr.open('GET', url, true); xhr.responseType = '...
  • 14、window.open 无法跳转问题 path:里面放置跳转的路由 let routeUrl = this.$router.resolve({ path: menus[i].children[0].url }); window.open( routeUrl.href );
  • Window.open实现post请求

    2021-11-01 10:58:42
    下载文件,文件请求用get,用window.open()函数实现,第二种方案是直接一个post请求,第二种方案,经过查询各种资料,得到下面这个js函数(只适用于firfox) ```javascript function openPostWindow(url,data,name)
  • window.open(“URL”,‘top’); 打开新窗口 window.location.href=“URL”; 本窗口打开新页面 场景 但是在某些场景下,例如用户触发后,需要进行一些交互判断,然后window.open打开新窗口时,经常会被拦截。 原因 在...
  • 使用 window 对象的 open() 方法可以打开一个新窗口。用法如下:window.open (URL, name, features, replace)参数列表如下:URL:可选字符串,声明在新窗口中显示网页文档的 URL。如果省略,或者为空,则新窗口就...
  • 1、window.open()参数window.open(pageURL,name,parameters)其中:pageURL为子窗口路径name为子窗口句柄parameters为窗口参数(各参数用逗号分隔),如常用的‘height=100,width=400,top=0,left=0,toolbar=no,menubar=...
  • 打开一个新的浏览器窗口window.open() open() 方法用于打开一个新的浏览器窗口或查找一个已命名的窗口。 window.open(URL,name,specs,replace) URL:可选。打开指定的页面的URL。如果没有指定URL,打开一个新的...
  • 现象 最近在做项目的时候碰到了使用window.open被浏览器拦截的情况,虽然在本地的环境可以对浏览器设置操作,但是对用户来说,不能要求用户都来通过拦截。 可以发现,当window.open为用户触发事件内部或者加载时,...
  • 无论下载什么压缩包还是文档,使用window.open都可以解决。 这是我自己封装的api,接口所需要的参数 request.url是我自己前端跨域的,一般后端跨域,自己弄有点麻烦。 页面直接调用接口就行了。 不需要...
  • 我们经常使用 HTML target="_blank" 或 window.open() 在新窗口中打开页面。 // in html <a href="www.google.com" target="_blank">open google</a> // in javascript window.open("www.google.com") ...
  • vue中使用window.open()参数详解

    千次阅读 2021-10-18 15:27:23
    下面为大家介绍一下使用window.open()如何实现这两种情况。 1.window.open()有三个参数 windows.open("URL","name","configuration"); URL:为要新打开页面的url name:为新打开窗口的名字,可以通过此名字获取...
  • 在实际项目中,常常遇到这样的需求,即实现子系统页面之间跳转并在新的页面...在打开的子系统页面中还有个ztree插件实现的树状菜单需要参数系统ID才能初始化,直接使用window.open(url,"_blank"),会使得url长度过...
  • window.open下载文件后执行回调方法

    千次阅读 2021-04-27 14:27:10
    let net = window.open('下载地址'); net.addEventListener("beforeunload", e => { console.log("回调处理"); }); 优点:代码简洁、方便 缺点:点击下载后会新打开一个浏览器窗口 对用户体验要求不高的情况...
  • 发现window.open有时生效有时不生效,后来查阅资料后发现浏览器出安全方面的考量,会把用户操作完页面后一段时间内的window.open视为非法操作屏蔽掉,这个时间后来经过测试大概是五秒;如果接口请求比较耗时就会导致...
  • window.open下载文件

    2021-12-02 18:19:04
    window.open(`/api/oceanengine/oceanAdModelReq/download?${tokenHeader}=${getToken()}&ctNumber=${row.ctNumber}&downloadStatus=${'Y'}`)
  • window.open 只弹出一次

    2021-09-27 11:42:54
    let qrWindow = null;... this.windowOpen(); } else { let closed = qrWindow.closed; //判断window是否打开,如果打开,则重新聚焦,否则,重新打开页面 if (closed) { this.windowOpen(); } else {
  • Safari中无法open新窗口,原因是Safari的安全机制将其阻止,一些异步操作,比如ajax回调里面执行window.open就会失效,原因是代码自己自动执行的,被IOS的安全机制拦截! 解决方法自定义创建a标签 let a = document...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 395,279
精华内容 158,111
关键字:

window.open

友情链接: sotrce-procedure.rar