簡體   English   中英

盡管沒有調用,Javascript打開了新窗口

[英]Javascript opens new window despite no call

我有一個javascript,可以打開一個用於“預檢查”網站的新窗口。 問題是,當我單擊該按鈕時,它可以正常工作...但是,即使我未調用該按鈕,在我按下一步時,該方法也會再次觸發。 它只是ID為“ lnkPrecheck”的按鈕,應該調用該方法。 在廣泛的搜索范圍內搜索了只是為lnkPrecheck按鈕打開一個新窗口而不是該站點上其他窗口的窗口。 這一定是一種方法,只有3個按鈕中的1個可以進行函數調用,而不是全部!

編碼:

<asp:Button OnClick="lnkPrecheck_Click" OnClientClick="NewWindow();" ID="lnkPrecheck" runat="server" text="Precheck (Opens in a new window)" />

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

嘗試這個:

<script type="text/javascript">    
    var NewWindow = function() {
        document.forms[0].target = "_blank";
        return false; // Prevents ASP.NET-buttons from performing default behavior
    }    
</script>

<asp:Button OnClick="lnkPrecheck_Click" OnClientClick="NewWindow();" ID="lnkPrecheck" runat="server" text="Precheck (Opens in a new window)" />

不確定將表單target設置為_blank是否會打開一個新窗口。

如果表單中有任何<input type="button" ... /><button>標記,則必須使它們的onclick處理程序返回false(否則,取消所有單擊事件)。 否則,即使它們沒有顯式的“提交”按鈕,它們的默認行為是提交表單。

一旦嘗試這個...
它為我工作。
將其用於要在新選項卡中打開的asp.net控件。

 OnClientClick="window.document.forms[0].target='_new'; setTimeout(function(){window.document.forms[0].target='';}, 500);"

您的問題沒有真正的“解決方案”。

設置表單目標后,它將永久保留。 它並沒有恢復到原始目標。

一種解決方法是將原始目標存儲為自定義屬性,然后在單擊其他按鈕時“重置”目標。

該代碼為:

function NewWindow() {
   var oForm = document.forms[0];
   var curTarget = oForm.target;
   if (curTarget != "_blank")
      oForm.setAttribute("org_target", curTarget);
   oForm.target = "_blank";
}

function ResetTarget() {
   var oForm = document.forms[0];
   oForm.target = oForm.getAttribute("org_target");
}

然后,在所有其他按鈕中,首先調用ResetTarget函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM