(这里主要是窗口加载的内容以及安全配置),可能带来一些危害 渲染进程创建新窗口在之前的文章中出现过绕过安全限制的情况(iframe + window.open) ,但 window.open 不仅仅是绕过安全限制那么简单...还是顶级导航的页面,还是干脆新打开一个标签/窗口来展示 _self:当前页面加载。(a标签默认) _blank:通常在新标签页打开,但用户可以通过配置选择在新窗口打开。...的 window.open 可能会有一些遗漏,但这些遗漏会造成危害吗?...我们测试一下遗漏的几种 frameName(target) 是否可以配置执行 Node.js _self 可以执行 Node.js,经过测试,_parent 和 _top 也是可以的 其实这里 window.open...(target) 设置为 _self、_parent、_top ,则 window.open 的行为会变成导航行为,此时设置 contents.setWindowOpenHandler 就不管用了,导航后的窗口也是继承父窗口权限
window.open是javascript函数,该函数的作用是打开一个新窗口或改变原窗口,如果你直接在js中调用window.open()去打开一个新窗口,浏览器会拦截。...(注意:window.open(url,'_self')在原窗口打开,不会被拦截)。 普通情况下window.open不会拦截,但若是在ajax的回调里面进行window.open,会拦截!...(接下来的方案,各自看看试试,不保证管用,只是搜集来mark下) 方案3:采用a标签 click me # 点击这个超链接,浏览器会认为它是打开一个新的链接... 缺陷:有时候需要点击时候,进行一些其他设置或操作,再跳转。所以需要在js中完成。...id=1'; form.target = '_blank'; form.method = 'POST'; document.body.appendChild(form); form.submit();
指定target属性或窗口的名称。支持以下值: _blank - URL加载到一个新的窗口。...window.open是用来打开一个新窗口的函数! 2.window.open不一定是打开一个新窗口!!!!!!!!...只要有窗口的名称和window.open中第二个参数中的一样就会将这个窗口替换,用这个特性的话可以在iframe和frame中来代替location.href。...:在框架内指定页面打开连接 window.location或window.open如何指定target?...这一段代码可以加入HTML的任意位置,和之间可以,间也可以,越前越早执行,尤其是页面代码长,又想使页面早点弹出就尽量往前放。
指定target属性或窗口的名称。支持以下值: _blank – URL加载到一个新的窗口。...window.open是用来打开一个新窗口的函数! 2.window.open不一定是打开一个新窗口!!!!!!!!...只要有窗口的名称和window.open中第二个参数中的一样就会将这个窗口替换,用这个特性的话可以在iframe和frame中来代替location.href。...:在框架内指定页面打开连接 window.location或window.open如何指定target?...这一段代码可以加入HTML的任意位置,和之间可以,间也可以,越前越早执行,尤其是页面代码长,又想使页面早点弹出就尽量往前放。
为什么大部分国外网站内链接不用 target="_blank"新窗口打开? Google 都是当前窗口打开;Baidu/Bing 都是新窗口打开。 用户将无法控制它在本页打开还是新窗口打开。...新窗口打开使任务栏更加地拥挤。 新窗口打开增加浏览器资源的消耗。 新窗口打开是后退按钮变得不可用。 用户更加期望新页面在当页载入 ---- 以上,并不是我们讨论的重点!...涉及内容: 李刚的学习专栏 window.open(strUrl, strWindowName...如果,你的网站上有一个链接,使用了 target="_blank",那么一旦用户点击这个链接并进入一个新的标签,新标签中的页面如果存在恶意代码,就可以将你的网站直接导航到一个虚假网站。...= url } 12345 性能 通过target="_blank"打开的新窗口,跟原来的页面窗口共用一个进程。
frame,那么可将parent、self、top换为自定义frame的名称,效果是在frame窗口打开url地址。...window.open是用来打开一个新窗口的函数!...然而 window,open()不一定是打开新窗口 在有窗口的名称和window.open中第二个参数中的一样就会将这个窗口替换,用这个特性的话可以在iframe和frame中来代替location.href...location是window对象的属性,而所有的网页下的对象都是属于window作用域链中(这是顶级作用域),所以使用时是可以省略window。...延展 window.location或window.open如何指定target?
背景 产品需求来啦:点击页面上某个东西,要在新窗口中打开一个页面,注意!要在新窗口中打开。你呵呵一笑,太简单了: 打开的页面地址是固定的?直接a标签加上target="_blank"属性搞定。...但如果你脸比较黑,可能会遇到以下问题: 用户投诉:我在你们页面上进行的操作,怎么账号被盗了!! 用户吐槽:页面卡得不行了。。。 WTF? 2....机智的读者会发现上面的两个例子中分别复现了安全和性能问题(讲道理,第2个例子同时展现了安全和性能问题) 3.1 安全问题 使用a标签的target="_blank"属性,或者window.open(...如果父页面和新开窗口中的页面是不同域名的,浏览器会禁止新窗口访问opener中的内容。...确实,chrome有不同的标签页面使用不同进程和线程,但是有个例外,通过a标签的target="_blank"属性,或者window.open(url)在新窗口中打开页面, 会与父窗口共用进程和线程。
)时恶意弹出窗口(如弹窗广告、打开新窗口等),影响用户体验。...时机 由上述可知,使用window.open的时机,应该是在用户操作(如点击操作)时同步调用 // 会被拦截 window.open('https://javascript.info'); // 不会被拦截...5s) Safari:小于1s(不包括1s) 参考文档:Popups and window methods 其他方式打开新窗口 网上也搜到一些使用其他方式打开新窗口的方法,但经过实际测试,在异步打开新窗口的情况下...引导弹窗 数据异步请求完成之后,弹出一个引导弹窗,用户点击确认按钮之后使用window.open直接跳转 弹窗广告插件 浏览器一般都会有一些第三方的弹窗广告拦截插件,网上能找的大概原理如下: 针对特定弹窗广告的...,异步调用window.open被拦截是浏览器自带的机制,和是否使用广告插件无关
末尾放了正在使用的完整代码,想直接用的可以拉到最后。效果当存在嵌套时会出现一个蒙版和窗口,提示用户点击。点击后会在新窗口打开网站页面。...(window.self !...== window.top) { // 检测到嵌套时该干的事}从嵌套中跳出跳出只能是前端处理,如果使用了PHP等后端检测,可以直接返回前端JavaScript代码,或者HTML的A标签设置转跳。...window.open(window.location.href, '_blank');A标签点击转跳(较为推荐)当发生了用户交互事件,浏览器就不会阻止转跳了,所以这是个不错的方法。...代码if (window.self !
一、今天总结一下js中几个对象的区别和用法: 1."window.location.href"、"location.href"是本页面跳转 2."...window.top.location.href"是最外层的页面跳转 二、举例说明: 如果A,B,C,D都是jsp,D是C的iframe,C是B的iframe,B是A的iframe,如果D中js这样写...target的用法了: _blank:重新打开一个窗口 _parent:父窗口执行重定向 _self:自身页面重定向 _top:第一个父窗口重定向 小结: 1.window.open("Url...地址","_blank") = window.open("Url地址");//在新窗口打开 2.location = window.location = location.href = window.location.href...=self.location.href = "Url地址";//在D页面实现展现 window.open("Url地址","_self");//在D页面实现展现 3.parent.location.href
末尾放了正在使用的完整代码,想直接用的可以拉到最后。 效果 当存在嵌套时会出现一个蒙版和窗口,提示用户点击。 点击后会在新窗口打开网站页面。...嵌套 if (window.self !...== window.top) { // 检测到嵌套时该干的事 } 从嵌套中跳出 跳出只能是前端处理,如果使用了PHP等后端检测,可以直接返回前端JavaScript代码,或者HTML的A标签设置转跳...window.open(window.location.href, '_blank'); A标签点击转跳(较为推荐) 当发生了用户交互事件,浏览器就不会阻止转跳了,所以这是个不错的方法。...代码 if (window.self !
在浏览器中,通过 标签或者 JavaScript 中的 window.open 函数,可以打开新页面。新页面的 window 对象中,存在一个 opener 属性,保存对父页面的引用。...来看一个案例,假设父页面中有新窗口打开的子页面链接: click me...这两个方案都不完美,Referrer 在很多时候并不能轻易去掉,这样只剩下 window.open 这个「改动成本大、不优雅、会引入新的问题」的方案勉强可用了。...指令,详情; 到这里为止,我们讨论的都是「新窗口打开的子页面将父页面跳走」所带来的风险。...点击链接后打开的确实是正常的登录页,但几秒后会被替换为提前准备好的钓鱼页,如果这时没注意地址栏的变化,就很容易被钓鱼者利用。
和window.open方法,可以实现页面的重定向和新窗口打开。...// 重定向 window.location.href = 'https://example.com'; // 新窗口打开 window.open('https://example.com', '_blank...跳转到 example.com 使用JavaScript方法 在Vue的方法中,可以使用window.location...跳转到 example.com 使用JavaScript方法 在React的函数或事件处理器中,可以利用...('https://example.com', '_blank'); } 总结 跨域页面跳转是前端开发中常见但重要的需求,掌握多种实现方法可以帮助我们在不同环境和场景下灵活应对。
一般点击打开新窗口,有几种方式: 1、超链接a 有href属性、target为_blank 2、iframe,其target为_blank 3、window.open 4、form表单提交,同样target也必须设为_blank 现在遇到一个需求: 做了一个后台运维管理系统,在点击datagrid头部一个按钮,需要打开一个新窗口...因为extjs运行效率比较低,所以选择使用chrome访问系统,而在操作些按钮的时候发现很多很奇特的现象,这些现象只出现在chrome中: 1、打开一个窗口后,些窗口不关闭,将无法打开多个窗口,即使原有窗口关闭...,就是弹出的窗口是没有工具栏和地址栏的,且不在新选项卡中打开 后来搜索到一篇文章,有所启发,就有了如下的代码: var nwin = window.open(); nwin.location = ‘xxxx...’;//需要打开的地址 如果使用ajax请求地址后面的参数的话,需要将ajax改为同步,不然弹出的窗口会在新窗口中打开,而且没有工具栏和地址栏的
一、a标签的语法 链接显示内容 target值: _blank在新窗口中打开...; _self 在自身窗口打开(默认); _parent 在上一级窗口打开,框架会经常使用; _top 在浏览器整个窗口中打开,忽略任何框架。...)”>; 3.E-mail链接(并允许访问者向指定的地址发送邮件); 4.锚点连接 跳转到同一网页或其他文档的指定位置:创建锚点...; 6.脚本链接:是一种特殊的链接,当单击设置脚本链接的文本或图像时,可以运行相应的JS语句。...:输入javascript:window.open(‘文件名或URL’); 打开窗口 四
2016-07-18 09:07:01 在a标签有一个属性为target,将其值设置为“_blank“,即可新开一个窗口打开页面,那么通过js也可以控制打开新的窗口来开启页面。...我们都知道form表单提交可以刷新页面,同时如果给form表单设置一个target同样也可以达到a标签的效果 form.target="_blank"; form.action="aaa.aspx";...form.submit(); 如上代码,页面中设置一个隐藏的form表单,只不过里面不放置任何东西,提交表单几个跳转到一个新的页面,同时是用一个新的窗口打开。...还有一个办法就是采用window.open()的方式,window.open方法可控制的样式丰富,比如我们可以控制窗口显示的大小,窗口显示的内容,以及位置等等。...都是使用js中的window.open有一个缺点就是容易被浏览器屏蔽。本文介绍了js中打开新窗口的各种方法。
语法: prompt(str1, str2); 参数说明: str1: 要显示在消息对话框中的文本,不可修改 str2:文本框中的内容,可以修改 返回值: 1....."); } 5.JavaScript-打开新窗口(window.open) 语法:window.open([URL], [窗口名称], [参数字符串]) URL:可选参数,在窗口中要显示网页的网址或路径..._top"、"_blank"、"_self"具有特殊意义的名称。..._blank:在新窗口显示目标网页 _self:在当前窗口显示目标网页 _top:框架网页中在上部窗口中显示目标网页 3.相同 name 的窗口只能创建一个,要想创建多个窗口则...")// 新窗口打开时弹出确认框,是否打开 if(please_confirm==true) { var text=prompt("请输入网址"); window.open
_self & _blank,如果在一个 A 标签内包含一个 target 属性,浏览器将会载入和显示用这个标签的 href 属性命名的、名称与这个目标吻合的框架或者窗口中的文档,如果这个指定名称或 id...您可以把target=”_blank”理解为新的浏览器窗口打开此超链接; 关键点: 如果您使用了该属性却没有添加rel=”noopener noreferrer”得话就会存在一定得安全风险; 原理解析...:我们知道JS在在调用window下的open方法创建一个新窗口的同时,我们可以获得一个创建窗口的opener句柄,如果通过target=”_blank”点开的窗口活着标签页,此时子窗口也能捕获opener...JS-Console演示: #窗口1.default.html window.open("...."noopener noreferrer"来完整覆盖,此时子页面就再也访问不到父页面的句柄所以更无法操作原窗口的句柄; 也可以通过js来控制限制句柄的访问: var otherWindow = window.open
标签实现新窗口打开: 官方文档中说 v-link 指令被 组件指令替代,且 不支持 target="_blank" 属性...,如果需要打开一个新窗口必须要用标签,但事实上vue2版本的 是支持 target="_blank" 属性的(tag="a"),示例如下: <router-link...编程式导航: 有些时候需要在单击事件或者在函数中实现页面跳转,那么可以借助router的示例方法,通过编写代码实现。...我们常用的是 router.push 和 router.go ,但是vue2.0以后,这种方式就不支持新窗口打开的属性了。这两种平常用的都比较多,这里就不再赘述。...$router.resolve({ path: "/share", query: {id:96} }); window.open(routeUrl .href, '_blank
领取专属 10元无门槛券
手把手带您无忧上云