我有一个按钮,用于打印目的。我希望在按下打印按钮后,焦点转到另一个按钮。但我的代码不起作用。
我从firebug获得的错误是TypeError: document.getElementById(...) is 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>
printPage()函数在外部&#34; print.js&#34;文件的
function printPage() {
var headstr = "<html><head><title></title></head><body>";
var footstr = "</body>";
var newstr = document.getElementById("printIt").innerHTML;
var oldstr = document.body.innerHTML;
document.body.innerHTML = newstr;
window.print();
document.body.innerHTML = oldstr;
document.getElementById('<%=btn_CR.ClientID%>').focus();
}
根据建议我更改了代码
document.getElementById('<%=btn_CR.ClientID%>').focus();
致document.getElementById('btn_CR').focus();
但仍然得到相同的错误TypeError: document.getElementById(...) is null
。
答案 0 :(得分:1)
您无法在 aside.affix {
top: 0;
}
文件中使用内联表达式var $scrollHeight = $ ( '#main-nav').outerHeight ( true );
$ ( 'aside' ).affix ({
offset: { top: $scrollHeight }
});
$ ( 'aside' ).one ( 'affix.bs.affix', function ( ) {
/**Get sidebar's offset position**/
var $offset = $ ( 'aside' ).offset ( );
/**Get sidebar's width**/
var $width = $ ( 'aside' ).outerWidth ( true );
/**Create an style array for our sidebar**/
var styles = {
left : $offset.left,
width: $width
};
/**Set aside/Sidebar's CSS.**/
$ ( 'aside' ).css ( styles );
});
。
尝试使用
<%=btn_CR.ClientID%>
此外,在.js
功能中,您正在呼叫document.getElementById('btn_CR').focus();
。 printPage
没有元素,因此会返回getElementById(printIt').innerHTML
,ID 'printIt'
将会中断。
答案 1 :(得分:0)
代码<%=btn_CR.ClientID%>
的这一部分未在print.js
内转换。
现在因为你需要翻译它才能在javascript文件之前制作它,例如你可以这样做:
<script>
var NextFocusButtonId = <%=btn_CR.ClientID%>;
</script>
<script type="text/javascript" src="../scripts/print.js"></script>
并在你写的print.js
内
document.getElementById(NextFocusButtonId).focus();