close

ASP.NET 的 LinkButton本身沒有 target屬性,所以先用以下的方式解決:

先創一個Page(open.aspx),放置一個名為LinkButton1的LinkButton元件

JavaScript:

    function NewWindow() {
        document.forms[0].target = "_blank";
    }

後台:

    protected void Page_Load(object sender, EventArgs e)
    {
        LinkButton1.OnClientClick = "NewWindow()"; //註冊js
    }
    protected void LinkButton1_Click(object sender, EventArgs e)
    {
        Response.Redirect("~/default.aspx");
    }

(注意:本來是用前端直接用window.open() » 這會有安全性檔住的問題!!)

微軟有篇文章對快顯封鎖的詳細介紹,算是網頁開發人員角度的技術說明。

原則上,快顯封鎖主要會封鎖"由程式觸發而非使用者點擊觸發的開啟新視窗行為",範圍包含:

  • window.open
  • window.showHelp
  • window.showModalDialog
  • window.showModelessDialog
  • window.external.NavigateAndFind
  • setHomePage()
  • 自動導向搜尋欄(Scripts from automatically targeting the search pane.)
  • 由覆蓋在網頁上DHTML元素自動開啟的視窗(Windows that are opened automatically from DHTML elements that overlap content on the same page. )
  • 在onunload中呼叫window.open(以前"永遠關不掉的廣告網頁"愛用的技倆)
  • Scripts from targeting and then navigating to a named frame that doesn't exist. 只有以下情況,開啟新視窗行為才被允許:
  • 使用者點擊連結(link)
  • 本機端執行的程式(非網頁Script)開啟(含廣告軟體)
  • 透過ActiveX元件,經由使用者的操作觸發
  • 網頁位於信任的網站(Trusted Sites)或近端內部網路(Local Intranet)
  • 使用者在快顯封鎖程式設定所列舉"允許的網站"
  • 透過window.createPopup建立子視窗(但createPopup不能指向現成網頁的URL,要透過Javascript建構內容)

原出處:http://blog.darkthread.net/post-2011-07-12-showmodaldialog-and-popup-blocker.aspx

arrow
arrow
    文章標籤
    linkbutton newwindow
    全站熱搜

    Jimmy 發表在 痞客邦 留言(1) 人氣()