Javascript 按下一个按钮进行打印后,将焦点放在另一个按钮上

Javascript 按下一个按钮进行打印后,将焦点放在另一个按钮上,javascript,asp.net,client-side,Javascript,Asp.net,Client Side,我有一个按钮,用于打印。我希望在按下打印按钮后,焦点转到另一个按钮。但是我的代码不起作用 我从firebug得到的错误是TypeError:document.getElementById(…)为null。 打印过程已成功完成,但打印后,焦点不会转到“btn_CR”按钮 在打印过程结束后,焦点转到“btn_CR”按钮上,我如何才能做到这一点。我是否需要编写服务器端脚本,或者这可以由javascript处理?请帮帮我 我的aspx代码:: <asp:Content ID="AdminConte

我有一个按钮,用于打印。我希望在按下打印按钮后,焦点转到另一个按钮。但是我的代码不起作用

我从firebug得到的错误是
TypeError:document.getElementById(…)为null
。 打印过程已成功完成,但打印后,焦点不会转到“btn_CR”按钮

在打印过程结束后,焦点转到“btn_CR”按钮上,我如何才能做到这一点。我是否需要编写服务器端脚本,或者这可以由javascript处理?请帮帮我

我的aspx代码::

<asp:Content ID="AdminContent" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server">
<asp:Panel ID="print_Client_registration" Visible="false" runat="server">
        <div id="printIt">            
            <div style="width: 260px;font-family:Arial,Helvetica, sans-serif;">
                <div style="text-align: center; width: 100%; font-size: 15px;"><b>
                    <asp:Label ID="lblClientId" runat="server" /></b></div>
                <div style="text-align: left; width: 100%; font-size: 13px;"><b>Name:</b>
                    <asp:Label ID="lblName" runat="server" /></div>
            </div>
        </div>            
        <asp:Button ID="btn_print" runat="server" ClientIDMode="Static" Text="Print" OnClientClick="printPage();"/>        
        <div>
            <table class="nostyle">
                <tr>
                    <td><input type="button" id="btn_CR" runat="server" value="Client Register" onclick="window.location.href = 'NewClientRegister.aspx'" /></td>

                </tr>
            </table>
        </div>
    </asp:Panel>
    <script type="text/javascript">
        var NextFocusButtonId = <%=btn_CR.ClientID%>;
    </script>
    <script type="text/javascript" src="../scripts/print.js"></script> 
</asp:Content>

姓名:
var NextFocusButtonId=;
printPage()函数位于外部“print.js”文件中

函数printPage(){
var headstr=“”;
var footstr=“”;
var newstr=document.getElementById(“printIt”).innerHTML;
var oldstr=document.body.innerHTML;
document.body.innerHTML=newstr;
window.print();
document.body.innerHTML=oldstr;
document.getElementById(“”).focus();
}
按照建议,我更改了代码

document.getElementById('<%=btn_CR.ClientID%>').focus();
document.getElementById(“”).focus();
document.getElementById('btn_-CR').focus()

但是仍然得到相同的错误
TypeError:document.getElementById(…)为null

您不能在
.js
文件中使用内联表达式
。 试用

document.getElementById('btn_CR').focus();
另外,在
printPage
函数中,您正在调用
getElementById(printIt')。innerHTML
。没有ID为“printIt”的元素,因此它将返回
null
,并且
null.innerHTML
将中断。

这部分代码
未在
print.js
中翻译。 现在,因为您需要将其转换为一个技巧,所以它可以在javascript文件之前进行转换,例如,您可以执行以下操作:

 <script>
 var NextFocusButtonId = <%=btn_CR.ClientID%>;
 </script> 
 <script type="text/javascript" src="../scripts/print.js"></script> 

您确定吗,错误在第二个
getElementById
?@Backs中?我不太擅长javascript。我只是发布我从firebug控制台得到的信息。请你提出解决这个问题的办法好吗。非常感谢。伙计们,请给我一些解决办法。非常感谢。谢谢你的及时回复。那么,我应该用什么来关注另一个按钮呢?我已经提供了完整的aspx代码。请看一看。谢谢我应该使用
document.getElementById(NextFocusButtonId.focus()
document.getElementById('NextFocusButtonId').focus()。请推荐。我已经提供了页面的HTML。请看一下代码。我已经按照你的建议做了改变,但仍然不能解决问题。非常感谢。
 <script>
 var NextFocusButtonId = <%=btn_CR.ClientID%>;
 </script> 
 <script type="text/javascript" src="../scripts/print.js"></script> 
  document.getElementById(NextFocusButtonId).focus();