青菜貓(孫宇博客),青菜貓(孫宇博客),青菜貓(孫宇博客)http://www.javasdc.cn/
          posts - 29,  comments - 63,  trackbacks - 0

              好久沒有寫過js了,近日項目中,有個需求就是,新打開窗口頁面,對于新窗口我總結以下2點
            1.最基本的彈出窗口代碼window.open()這個也相對簡單,大家都調用過,建義大家用絕對路徑(http://),以下是參數
          window.open 彈出新窗口的命令;
            'page.html' 彈出窗口的文件名; 
          'newwindow' 彈出窗口的名字(不是文件名),非必須,可用空''代替;
          height=100 窗口高度;
          width=400 窗口寬度;
          top=0 窗口距離屏幕上方的象素值;
          left=0 窗口距離屏幕左側的象素值;
          toolbar=no 是否顯示工具欄,yes為顯示;
          menubar,scrollbars 表示菜單欄和滾動欄。
          resizable=no 是否允許改變窗口大小,yes為允許;
          location=no 是否顯示地址欄,yes為允許;
          status=no 是否顯示狀態欄內的信息(通常是文件已經打開),yes為允許;

          用這個方法在瀏覽器中,基本都會被屏蔽,大家可以通過
          var val = window.open(url),返回值來判斷
          if(!val){
          這里表示被屏蔽了,沒有成功,。大家可以在這里加個相對應的業務代碼。我當時如果處理是如果屏蔽了,
          用document.location.href=url內部跳轉。
          }
          2、以上方法最基本的問題沒有解決,就是屏蔽。所以告訴大家一個最完美window.open()不會
          屏蔽的,道理很簡單,就是建一個form.然后提交form,因為form可以在新窗口提高
          給大家看看代碼吧。
          在你的頁面里<form action="" method="get" target="_blank" id="tzForm" name="tzForm"/>
          <div id="J_formStr"></div>
          </form>
          然后js
          function openUrl(urlStr){
          var pStr="";
          if(urlStr.indexOf("?")!= -1){
          var str = urlStr.substr(urlStr.indexOf("?")+1,urlStr.length);
          strs = str.split("&");
          for(var i = 0; i < strs.length; i ++){
          pStr=pStr+"<input type='hidden' name='"+strs[i].split("=")[0]+"' value='"+strs[i].split("=")[1]+"' />";
          }
          }
          document.getElementById("J_formStr").innerHTML=pStr;
          document.tzForm.action=urlStr;
          document.tzForm.submit();
          }
          大家可能會問,為什么還要這多代碼。不就是一個提交表單。給大家說說原因吧
          (1) 為什么用get,而不用post,在新窗口頁面如果用post然后刷新。會有一個提交數據的對話框,所以才用get
          (2)用get提交有個很關鍵的問題,如果你的url提交地址中有相對應的參數,打個比方,***.jsp?a=1&b=2在新窗口中
          ?a=1&b=2參數丟失掉。所以在上面有個pStr這個就是解析url中的參數,然后動態創建的表單元素,這樣參數就不會
          丟失。
          我項目已經用了,感覺還不錯,確實是很基礎的東西,分享一下,歡迎大家拍磚。。。

           
          posted on 2010-07-05 16:09 青菜貓(孫宇) 閱讀(3291) 評論(10)  編輯  收藏 所屬分類: js


          FeedBack:
          # re: 關于網頁打開新窗口的解決方案,拒絕屏蔽[未登錄]
          2010-07-05 17:19 | Sam
          看了標題被吸引了,所以進來看看。

          完整的看了你的代碼,已經理解你的解決辦法,樓主對于該問題精神可嘉。

          但我比較懷疑,首先是應用場景及環境。
          1. 不知道你的demo代碼如何寫的(如何彈出的?是手工點擊按鈕還是自動彈出等等)。
          2. 在你的測試環境中,何種瀏覽器(何種插件)對該腳本免疫?

          我畢竟這種方法不是新技術或者特別的技巧。這么說的原因是因為你在挑戰開發瀏覽器的程序員思維和邏輯,很難想象他們(FF, Chrome..)會不檢測你上面的邏輯,或者判斷不出來是否屬于非法彈出窗口。

          期待回復:)  回復  更多評論
            
          # re: 關于網頁打開新窗口的解決方案,拒絕屏蔽[未登錄]
          2010-07-05 17:27 | Sam
          一點補充:
          3. 如果跨域提交是否依然work很好?  回復  更多評論
            
          # re: 關于網頁打開新窗口的解決方案,拒絕屏蔽[未登錄]
          2010-07-05 17:34 | 劉俊杰
          嗯,不錯,謝了
            回復  更多評論
            
          # re: 關于網頁打開新窗口的解決方案,拒絕屏蔽
          2010-07-05 19:34 | 青菜貓(孫宇)
          @Sam
          呵呵,目前火狐,IE6,傲游,Chrome都已經通過,手工點擊按鈕點的,因為我要操作一個邏輯,然后在新窗口,
          肯定不會非法彈出窗口。因為是form提交  回復  更多評論
            
          # re: 關于網頁打開新窗口的解決方案,拒絕屏蔽
          2010-07-05 19:36 | 青菜貓(孫宇)
          @Sam
          其實這邊應用還很多場景的,主要是在淘寶社區淘江湖里,。呵呵  回復  更多評論
            
          # re: 關于網頁打開新窗口的解決方案,拒絕屏蔽
          2010-07-06 01:50 | POP
          給個完整的DEMO呀。。。。這都不知道如何用  回復  更多評論
            
          # re: 關于網頁打開新窗口的解決方案,拒絕屏蔽
          2010-07-06 08:50 | liucr
          樓主:是不是這種方法與〈a href="*.jsp?a=1&b=2" target="_blank"..../〉效果一樣呀?如果這樣是不是可以不那么麻煩?  回復  更多評論
            
          # re: 關于網頁打開新窗口的解決方案,拒絕屏蔽
          2010-07-06 09:14 | 青菜貓(孫宇)
          @liucr
          恩,一樣的效果,是因為在js中要新窗口  回復  更多評論
            
          # re: 關于網頁打開新窗口的解決方案,拒絕屏蔽
          2010-07-06 13:10 | ding
          Dim intFPO, intNFPO As Integer
          '搜索列
          With Worksheets("PivotTable").Rows(501)
          Set C = .Find("PO-框架下PO", LookIn:=xlValues)
          If Not C Is Nothing Then
          intFPO = C.Column
          End If
          End With
            回復  更多評論
            
          # re: 關于網頁打開新窗口的解決方案,拒絕屏蔽
          2010-08-04 10:09 | da
          那怎么讓這個新彈出的窗口去掉工具欄呢,望能指教  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2010年7月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          青菜貓(孫宇)結交天下朋友,在網上吸取知識..

          常用鏈接

          留言簿(16)

          隨筆分類

          隨筆檔案

          文章分類

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          青菜貓(孫宇博客),青菜貓(孫宇博客),青菜貓(孫宇博客)http://www.javasdc.cn/
          主站蜘蛛池模板: 肇源县| 沁阳市| 正阳县| 岳阳市| 普洱| 天镇县| 孟州市| 岑溪市| 西林县| 安丘市| 南和县| 五家渠市| 米林县| 渑池县| 建昌县| 称多县| 平原县| 磐石市| 英吉沙县| 五莲县| 龙胜| 灵璧县| 宜宾县| 垣曲县| 钟祥市| 合水县| 呼和浩特市| 仪陇县| 昌江| 津南区| 西丰县| 梁山县| 淮南市| 获嘉县| 津市市| 木兰县| 新巴尔虎左旗| 台南市| 南城县| 沁源县| 和田市|