`

避免javascript打开新窗口被浏览器阻止的方法

阅读更多
  经本人亲测,使用使用虚拟表单的方式可以完美解决。该方法的核心奥义是:浏览器不阻止当前窗口中javascript的window.open()动作。
  利用这个规则,在当前窗口中打开一个指定标题的空白窗口,然后将虚拟表单提交到该标题对应的窗口。

  一、wallimn-util.js文件。一个独立的通用js文件,放很多通用的函数
/**
 * JS通过虚拟表单的方式POST方式提交数据
 * @param URL
 * @param PARAMS
 * @returns
 */
function jsPost(URL, PARAMS, TARGET) {
	  var temp = document.createElement("form");
	  temp.action = URL;
	  temp.method = "post";
	  temp.style.display = "none";
	  if(!TARGET){
		  TARGET="_self";
	  }
	  temp.target=TARGET;
	  for (var x in PARAMS) {
	    var opt = document.createElement("textarea");
	    opt.name = x;
	    opt.value = PARAMS[x];
	    temp.appendChild(opt);
	  }
	  document.body.appendChild(temp);
	  temp.submit();
	  return temp;
	}


  二、需要用javascript打开窗口的页面:
//有人说这个函数要通过a的onclick调用才行。我没有测试按钮行不行。
//如果想将window.open不放在当前页面,写在上面wallimn-util.js文件中,浏览器同样会阻止。
function jsOpenWin(){
  var title="js新窗口";
  window.open("about:blank",title);
  jsPost("wallimn.iteye.com",{name:"wallimn"},title);
}


  三、重要提示:
  window.open只能写在当前页面中。
  window.open只能写在当前页面中。
  window.open只能写在当前页面中。
1
1
分享到:
评论

相关推荐

    JS打开新窗口防止被浏览器阻止的方法

    例如,在用户未与页面交互之前或在`setTimeout`、`setInterval`中打开新窗口,常常会被浏览器阻止。因此,这种方法在很多情况下并不适用。 接下来,我们看看改进的方法。 方法一:模拟表单提交。这是一种古老但...

    js中打开新窗口的各种方法.doc

    在JavaScript中,打开新窗口是常见的操作,常用于创建弹出窗口、对话框或实现特定交互。`window.open`函数是实现这一功能的核心方法。它接受三个参数:要打开的URL、新窗口的名称(可选)以及一个包含窗口属性的字符...

    JS弹出新窗口被拦截的解决方法

    在Web开发中,JavaScript是用于实现网页动态效果的重要技术之一,其中window.open()函数用于在浏览器中打开新窗口。然而,在使用window.open()时,常常会遇到浏览器弹窗拦截的问题,这是由于现代浏览器对弹出窗口...

    ajax回调打开新窗体防止浏览器拦截有效方法

    然而,由于现代浏览器的弹窗拦截功能,这种操作往往会被浏览器认定为弹出广告等不需要的窗口而被阻止。浏览器的这种功能设计是为了提升用户体验,避免恶意程序通过自动打开新窗体干扰用户的正常浏览行为。 为了解决...

    JQ 新窗口打开链接并设置参数

    // 打开新窗口 }); }); ``` 在这个例子中,我们选择所有class为"open-in-new"的链接,当用户点击这些链接时,不会直接跳转,而是阻止默认行为,然后在新窗口中打开链接,窗口大小设定为800x600像素。 如果还需要...

    javascript实现禁用浏览器后退按钮

    #### 六、方法五:关闭窗口并打开新页面 最后一种方法是当用户点击某个操作(如退出登录)时,先关闭当前窗口再打开新的页面。 **代码示例**: ```javascript <script language="JavaScript"> function logout() {...

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

    在传统实现方式中,开发者可能会使用window.open()方法直接弹出新窗口,或者通过绑定点击事件到某个按钮或链接上,然后通过JavaScript代码来打开新的页面。然而,这些方法很容易被浏览器的弹窗拦截器和用户安装的...

    javascript 实现弹出小窗口

    - 定义了一个名为 `openwin` 的函数,该函数内部调用 `window.open()` 来打开新窗口。 - 通过 `body onload` 属性指定页面加载完成时自动执行 `openwin` 函数。 - 此外,还可以通过点击链接或按钮等方式触发这个...

    javascript经典特效---打开窗口前进行判断.rar

    4. **阻止默认行为**:在某些情况下,我们可能希望阻止默认的窗口打开行为,比如在链接上使用`event.preventDefault()`,这样在满足特定条件时才打开新窗口。 5. **用户体验**:在进行窗口判断时,应考虑用户体验。...

    Ajax请求响应中用window.open打开新窗口被拦截的解决方法

    这是因为浏览器的安全策略通常会阻止非用户交互触发的新窗口打开,以防止恶意脚本滥用。本文将探讨这个问题的原因以及几种可能的解决方案。 ### 问题描述与分析 当用户未直接点击链接或按钮时,例如在Ajax请求的回...

    在iframe框架中打开页面的方法

    5. 相同窗口、新窗口打开链接:除了在指定iframe中打开链接,target属性还支持几个特殊的值,如“_blank”可以打开链接在一个新的浏览器窗口或标签页中,而“_self”和“_parent”则分别在当前窗口或当前框架的父...

    javascript经典特效---窗口定制打开.rar

    在JavaScript中,我们通常使用`window.open()`函数来打开新的浏览器窗口。这个函数可以接受多个参数,用于设置新窗口的位置、大小、是否显示工具栏等属性。 1. **window.open()函数**:它的基本语法是`window.open...

    廷时弹出新窗口js代码

    这里的`window.open`方法是用于打开新窗口的,它接受两个参数:要打开的URL和新窗口的名称或配置。`_blank`是一个特殊值,表示在新的浏览器标签或窗口中打开链接。 接下来,让我们看看如何实现更具迷惑性的弹出新...

    window.open关于浏览器拦截问题分析及解决方法

    <a href="javascript:void(0)" onclick="window.open('https://example.com')">点击打开新窗口 ``` 当用户点击超链接时,浏览器会理解为用户有意打开新页面,因此不会进行拦截。 然而,有时我们可能需要在点击事件...

    window设定打开和关闭窗口的方法

    这个对象提供了许多方法,用于控制浏览器窗口的行为,包括打开新窗口和关闭当前窗口。本篇将详细讲解`window.open()`和`window.close()`这两个方法以及相关的知识点。 1. `window.open()`: 这个方法用于在浏览器中...

    谷歌浏览器js打开IE浏览器.rar

    此外,由于安全性和隐私原因,现代浏览器对这种跨浏览器的控制行为进行了限制,因此这种做法可能在某些情况下无法工作,或者被浏览器的安全策略阻止。对于需要兼容IE的网页应用,一个更推荐的解决方案是使用服务器端...

    delphi设计简单的web浏览器捕捉NewWindow2事件,即新开窗口事件2

    通过以上步骤,你就可以在Delphi中设计一个简单的Web浏览器,并控制用户试图打开新窗口的行为。这有助于避免弹出窗口的滥用,或者在特定场景下保持用户的浏览体验一致。同时,也可以根据具体需求进行扩展,例如记录...

    javascript经典特效---打开多个搜索引擎.rar

    此外,为了提高用户体验,开发人员可能会添加一些防止弹窗被浏览器阻止的策略,例如设置延迟或者与用户的其他交互结合,避免用户感觉被大量新窗口困扰。 标签"Javascript"提示我们关注的重点在于JavaScript的使用,...

    如何在各浏览器中启用JavaScript脚本

    - **浏览器更新**:更新浏览器或安装新的安全软件/补丁可能会重置您的JavaScript设置。如果遇到显示问题,请检查并重新启用JavaScript。 - **个人防火墙和安全软件**:如果启用JavaScript后仍然无法正常显示广告,...

Global site tag (gtag.js) - Google Analytics