1. 程式人生 > >非同步請求後根據結果window.open方式開啟新頁面,瀏覽器攔截彈窗問題

非同步請求後根據結果window.open方式開啟新頁面,瀏覽器攔截彈窗問題

專案中出現一個問題,要求根據從後臺非同步請求後的結果開啟新的標籤頁,發現使用window.location.href=”地址”,該方法沒有問題,但是使用window.open開啟新頁面的時候會無效。
網上查詢原因:瀏覽器出於安全原因阻止了window.open開啟新頁面。
解決辦法:修改 非同步同步 方法

  $.ajax({
    async:false,  //該值為必須的
    url:"請求地址", 
    type:"post",
    success:function(data){
      var data=JSON.parse(data),result=data.result;
      if
(result=="0"){ window.open("新的頁面"); }else{ …… //相關處理 } } });

以下這篇文章作者對多種情況問題進行了詳解:


http://www.cnblogs.com/master-zxc/p/6265019.html

相關推薦

非同步請求根據結果window.open方式開啟頁面瀏覽器攔截問題

專案中出現一個問題,要求根據從後臺非同步請求後的結果開啟新的標籤頁,發現使用window.location.href=”地址”,該方法沒有問題,但是使用window.open開啟新頁面的時候會無效。

window.open開啟視窗被瀏覽器攔截的處理方法

window.open是javascript函式,該函式的作用是開啟一個新視窗或這改變原來的視窗,如果你直接在js中呼叫window.open()函式去開啟一個新視窗,瀏覽器會攔截你,那麼如何避免呢。 注意,只有直接使用js呼叫 window.open(url); 開啟新視窗時,才會被攔截,如果是改變原理額

JS 以POST方式開啟頁面

/* *功能: JS跳轉頁面,並已POST方式提交資料 *引數: URL 跳轉地址 PARAMTERS 引數 */ function ShowReport_Click() { var parames

js window.open()打開的頁面關閉頁面

interval on() loop tin cti url 頁面 ren open function test(){   var winObj = window.open(URL);   var loop = setInterval(function(){     if(

vue使用axios非同步請求端資料的使用

Vue 原本有一個官方推薦的 ajax 外掛 vue-resource,但是自從 Vue 更新到 2.0 之後,官方就不再更新維護 vue-resource,並推薦axios,目前主流的 Vue 專案,都選擇 axios 來完成 ajax 請求。使用方法:方案一:改原型1.安

子視窗在用window.open()方法開啟如何關閉重新整理父視窗

需求 在網站開發過程中,經常會有需要通過A頁面開啟B頁面,在B頁面操作完畢後,返回到A頁面並重新整理B頁面相關資訊。 解決方式 A頁面增加JavaScript公共變數進行全域性控制,通過啟動、停止監聽事件的方法監聽B頁面的工作狀態,根據B頁面的工作狀態做出對應事件響應。具

dvajs如何在effects非同步請求更新component state

探討該問題的原因:component 元件內import了一個彈窗元件,而這個元件內部的資料需要非同步獲取。還有一個屬性visible用於控制彈窗是否顯示。解決方案一: 利用dva model,將 visible 屬性設定在 model state 屬性上。在effect獲取

angularjs 中打開瀏覽器口(解決window.open()瀏覽器攔截問題)

新窗口 ear ltr OS ati sco type ajax check 第一步:通過點擊事件,打開新窗口,並且傳遞參數 $scope.finalTrial = function(data){   var url = $state.href(‘content.check

在框架內用top.layer.open方式開啟的子視窗中呼叫父視窗方法

1.父視窗方法 function add() { //相關語句 } 2.父視窗開啟子視窗 ,其他屬性設定參考layer API top.layer.open({ id: “父視窗ID”, title: "自定義標題”, shade: 0.3, fix: fals

開啟頁面的想法,代替window.open()有時會被瀏覽器阻攔的

$(".item").attr("href","myCompeteInfo.html?comUserId="+cpId);<a href="myCompeteInfo.html?comUserI

window.open(url)開啟連結被瀏覽器攔截解決方案

瀏覽器為了維護使用者安全和體驗,禁止在JS中直接使用window.open(url)來開啟新的連結(window.open(url,”_self”)改變當前的視窗是可以生效的)。下面採用幾種變通方

關於window.open()開啟頁面出Object頁面的幾點說明

 1.如果是在前臺用超連結如<a href="javascript:window.open('webAdress.aspx ')"></a>開啟新頁面時會彈出一個內容頁為object的頁面,解決方案是呼叫下面的OpenWin()可以防止這種現象<

解決模式對話方塊和window.open開啟頁面Session會丟失問題

模式對話方塊頁面通過超連結(_blank類)或window.open開啟新頁面Session會丟失 解決方法如下: 在使用showModalDialog時會經常出現Session失效的問題,尤其是在這樣的使用情況下: 首先window. showModalDialog,然後

視窗window.open() url不顯示引數後面頁面可以接收引數 ——後面頁面為jsp

前臺js: var iUserID=document.actionForm.user_id.value; var iTID=document.actionForm.ts_id.value; var szUrl="/new_window.jsp"; //可寫可不寫 var s

window下mysql建立使用者修改密碼以及授權——低版本

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' 原文:http://blog.sina.com.cn/s/blog_4fcd1ea30100z0fe.ht

這篇文章主要介紹了js使用post 方式開啟視窗的相關資料,需要的朋友可以參考下

js中一般新開啟視窗很簡單直接window.open(url);就可以了,但是由於我希望傳遞引數到服務端,而且引數看起來很長一串,而且get方式的提交引數長度是有限制的,因此我有以下需求:1,js中實現post提交2,返回的頁面在新視窗顯示首先我是這麼做的:複製程式碼程式碼如下: $.ajax({      

如何實現Echart不刷頁面多語言切換下的地圖數據重新加載api請求數據加載soketed數據實時加載

oca class 頁面 har lse setoption bsp div 監聽 可視化項目中經常用到ecahrt,各種異步加載,連接socket,多語言切換等問題,現在匯總一下: Ecahrt初始化,全局統一init,可以初始化為0,等待後續數據操作 1、如果是ap

VS中附加程序的方式除錯IIS頁面以及設定斷點無效問題解決

    以前除錯網站的時候都習慣是直接在解決方案中右鍵除錯——啟動新例項,後來發現這樣的缺點有: 1、啟動比較慢; 2、一些瀏覽器的request引數無法帶入; 3、不特殊指定啟動url的話,VS會將頁面載入到localhost,如http://localhost/test

weex通過navigator.push的方式跳轉頁面頁面不顯示問題

在安卓裡,weex是使用Activity的category name來確定使用哪個Activity來渲染weex的。你需要自己定義Activity,如果是使用weexpack生成的android工程,那是設定好的。 <activity

php實現非同步方法之一(php對於curl或瀏覽器或ajax請求立即返回結果,返回結果的php程式碼還能繼續執行)

如題:  服務端php程式碼如下:(瀏覽器和curl的請求都可以使用) //要輸出到瀏覽器的內容, nginx伺服器快取內容需要大於65536才能輸出 $str = str_repeat(' ', 65536); //告訴瀏覽器資料長度,瀏覽器接收到此長度資料後就不再接收資