Advertisement

JavaScript中使用window.open在同一窗口打开新页面(非同名)

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
简介:本文介绍了在JavaScript中如何利用window.open方法在同一浏览器窗口中加载新的网页地址,特别强调了处理非同名窗口的情况。 最近在做一个JSP网页项目,需要打开一个没有任何菜单工具栏的IE窗口,并且使用了window.open方法来实现这一功能。然而,在尝试过程中发现了一个问题:如果先前已经打开了某个窗体而没有关闭它的话,在再次调用window.open时会直接在这个未关闭的窗体内创建新的内容而非新建一个独立的新页面,导致原先打开的那个窗口的内容被覆盖。 经过一番研究和测试之后,我找到了这个问题的原因所在。原来当使用相同的名称来指定新打开的窗口的时候(如下面的例子),浏览器将会在具有相同名字的一个已存在的窗口上加载该URL而不是生成一个新的: ```javascript window.open(view_svg.jsp?ukey=<%= ukey %>&itemID=<%= itemID%>&charset=UTF-8, newWindow,height=100%, width=100%,toolbar=no,loca); ``` 为了避免这种覆盖的情况发生,可以为每次调用时指定一个不同的窗口名称或者确保在打开新的页面之前关闭旧的页面。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • JavaScript使window.open
    优质
    简介:本文介绍了在JavaScript中如何利用window.open方法在同一浏览器窗口中加载新的网页地址,特别强调了处理非同名窗口的情况。 最近在做一个JSP网页项目,需要打开一个没有任何菜单工具栏的IE窗口,并且使用了window.open方法来实现这一功能。然而,在尝试过程中发现了一个问题:如果先前已经打开了某个窗体而没有关闭它的话,在再次调用window.open时会直接在这个未关闭的窗体内创建新的内容而非新建一个独立的新页面,导致原先打开的那个窗口的内容被覆盖。 经过一番研究和测试之后,我找到了这个问题的原因所在。原来当使用相同的名称来指定新打开的窗口的时候(如下面的例子),浏览器将会在具有相同名字的一个已存在的窗口上加载该URL而不是生成一个新的: ```javascript window.open(view_svg.jsp?ukey=<%= ukey %>&itemID=<%= itemID%>&charset=UTF-8, newWindow,height=100%, width=100%,toolbar=no,loca); ``` 为了避免这种覆盖的情况发生,可以为每次调用时指定一个不同的窗口名称或者确保在打开新的页面之前关闭旧的页面。
  • react-new-window: 使`window.open`React
    优质
    react-new-window 是一个用于在React应用中通过 `window.open()` 方法简便地创建和管理新浏览器窗口的实用工具库。 受到启发。 该库仅2.68KB(已压缩)。 支持完整的window.open API 。 为React 16构建(使用ReactDOM.createPortal)。 包含阻止弹出窗口的处理程序(通过onBlock属性)。 根据父窗口或屏幕使弹出窗口居中。 安装: ```bash npm i react-new-window --save ``` 用法: ```javascript import React from react; import NewWindow from react-new-window; const Demo = () => (

    Hi :waving_hand:

    ); ``` 将装入会打开一个弹出窗口。卸载后,该弹出窗口将会关闭。 children内容会被呈现到新的弹出窗口中。在这种情况下,会显示“Hi”。
  • Notabs:无需标签的Edge扩展,让标签
    优质
    Notabs是一款专为Microsoft Edge设计的浏览器扩展程序,它能够将用户点击的新链接自动在新的浏览器窗口中打开,而不是默认的选项卡。这极大地减少了标签栏的混乱,并帮助用户更好地管理多个任务和网页之间的切换,从而提高浏览效率。 随着Edge浏览器的最新更新,任何曾经在单独窗口打开的链接现在都会默认作为当前窗口中的新标签页打开。这虽然让一些用户感到满意,但我个人不喜欢使用标签页浏览网站,因此经常需要按住Shift键以确保单击链接时会开启新的独立窗口而非选项卡。然而有时我会忘记这样做,导致不希望的结果出现。 为了应对这个问题,并且无论何时点击任何东西都想要打开一个新的浏览器窗口而不是一个新标签页,我决定创建了一个Edge扩展程序来解决这个需求。此项目的目标非常简单:它需要捕获即将被加载的新标签的URL,然后使用该URL开启一个新的独立的Edge浏览器窗口,并关闭原本用于打开新页面的那个选项卡。 关于如何获取已编译好的版本,请在Microsoft Store中查找即可获得安装包;如果您想运行本地构建版本的话,则可以自行下载源代码并在开发环境中进行调试和测试。不过需要注意的是,这里不会提供具体的APPX文件的生成步骤说明,因为这超出了项目的基本范围之外。 总之,这个Edge扩展程序旨在帮助那些像我一样偏爱使用独立窗口而非标签页浏览网页的人们能够更方便地管理他们的浏览器操作习惯。
  • 使OpenCV展示多张图像
    优质
    本教程详细讲解如何利用Python的OpenCV库,在单一显示窗口内同时呈现多幅图片。适合希望学习图像处理和展示技术的开发者参考。 在使用OpenCV2.4.2与VS2008进行开发时,可以实现同一窗口显示多幅图片的功能。
  • 使POST方法通过window.open提交内容
    优质
    本教程介绍如何利用HTML与JavaScript结合的方式,在网页中通过POST方法和window.open函数实现在新开窗口中提交表单数据的功能。 最近在开发一个web项目时遇到了跨页面传递参数的需求。这种情况下通常需要将当前页面的内容带到新开的子窗体中,以往的做法是传一个id过去,在新窗口中通过读取数据库来获取内容。 有趣的是,直接调用form的submit方法不会触发onsubmit事件。查阅了相关文档后发现必须手动触发该事件;否则只会看到页面刷新而无法打开新的窗口。
  • JavaScript 关闭
    优质
    本教程将指导用户如何使用JavaScript编写代码来关闭浏览器页面或窗口。通过简单的函数和事件处理,实现网页间的流畅导航与操作控制。
  • 使Microsoft Fix it 50801 让 Excel 不文件显示
    优质
    本教程介绍如何运用Microsoft Fix it工具解决Excel中默认在一个窗口内打开多个工作簿的问题,实现每个文件独立窗口展示,提高工作效率。 MicrosoftFixit50801是由微软提供的自动修复工具,专门针对Excel应用程序的一个特定问题:用户希望在不同的窗口中独立显示多个Excel文件。这个功能对于需要同时处理大量数据的用户尤其有用,因为它提高了多任务处理的效率和便利性。 此工具适用于Office 2010和Office 2007版本。这意味着无论你是使用Office 2010还是2007,都可以利用MicrosoftFixit50801来实现这一功能。在默认情况下,Excel通常会在同一个窗口中打开多个工作簿,这可能会导致混乱,尤其是在处理大量数据时。通过这个工具,你可以使每个工作簿在单独的窗口中打开,使得屏幕布局更加清晰,并方便了切换和对比不同的工作簿。 在Excel中显示多个文件的方式有两种:一种是新窗口模式,在同一个Excel应用程序实例中打开新的窗口;另一种则是启动全新的Excel进程来打开文件。MicrosoftFixit50801可能就是用来设置或修复Excel以默认在新窗口模式下打开文件,让用户可以更方便地管理和查看多个Excel文件。 标签中的“让excel不同文件在不同窗口中”、“MicrosoftFixit50”、“office2010”、“Excel2010”和“office2007”,这些都是关键信息,强调了该工具的主要功能以及适用的软件版本。 压缩包内的文件“MicrosoftFixit50801(excel不同文件在不同窗口中显示).msi”是一个安装程序。用户可以通过运行这个文件来安装并应用修复工具。“.msi”是Windows Installer 包,它包含了所有必要的组件和信息,用于在用户的系统上安装软件。 MicrosoftFixit50801是一款针对Excel的解决方案,帮助用户在独立窗口中打开并管理多个Excel文件。如果你使用的是Office 2010或2007,并且需要这样的功能,请下载压缩包内的.msi文件进行安装以提高工作效率。请注意,在安装任何第三方软件之前,确保你的系统已更新并且你了解所有步骤,以便避免潜在的安全风险。
  • Vue实现使多个router-view的技巧
    优质
    本文介绍如何在Vue项目中于单一页面内灵活运用多个router-view组件,实现更复杂的路由视图布局。通过实例解析与代码演示,帮助开发者掌握这一实用技巧。 在使用Vue与Element库构建项目时,为了避免单个页面内容过多的问题,可以将tab标签内的内容拆分成多个独立的页面,并通过同级视图进行展示。例如,在一个``组件中设置`v-model=activeName`和`@tab-click=handleClick`属性来控制当前激活的选项卡。每个选项卡内部使用不同的`router-view`,并通过`:name`属性指定其名称,如: ```html ``` 这样可以有效地将大页面分割成多个小部分,提高用户体验和项目的可维护性。
  • Ajax请求响应使window.open被拦截的解决方案
    优质
    本文探讨了在使用AJAX进行请求响应时,尝试通过window.open打开新窗口可能遇到的安全拦截问题,并提供了解决方案。 一、问题描述 使用 AJAX 异步请求成功后需要新开窗口打开 URL 时遇到了一个问题:调用 `window.open()` 方法会被浏览器拦截。这要求用户手动点击链接才能执行。 二、问题分析 浏览器会拦截这种非用户主动触发的新窗口操作,认为这是不安全的行为。即使在 AJAX 的回调函数中尝试模拟用户的点击或提交行为(例如使用 `.trigger(click)`),也无法绕过这一限制,因为这些动作也被视为非用户直接发起的请求。 说明:1、如果是在 `` 标签中的 `fun()` 方法里处理这种情况时,需要注意上述提到的安全性问题。