尽管没有电话,Javascript会打开新窗口

时间:2011-02-14 12:20:07

标签: javascript asp.net

我有一个javascript,为“PreChecking”网站打开一个新窗口。问题是,当我点击按钮,它工作正常...但是按下我按下我按下然后再次触发方法,尽管我没有调用它。它只是一个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";
}

4 个答案:

答案 0 :(得分:3)

试试这个:

<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是否会打开一个新窗口。

答案 1 :(得分:2)

如果表单中包含任何<input type="button" ... /><button>标记,则必须使其onclick处理程序返回false(否则取消任何点击事件)。否则,他们的默认行为是提交表单,即使它们不是明确的“提交”按钮。

答案 2 :(得分:0)

您的问题没有真正的“解决方案”。

设置表单目标后,它会保持良好状态。它不会恢复到原来的目标。

一种方法是将原始目标存储为自定义属性,然后在单击其他按钮时“重置”目标。

代码就是:

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函数。

答案 3 :(得分:0)

一旦尝试这个......
它对我有用..
将此选项用于要在新选项卡中打开的asp.net控件。

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