提问人:user4221591 提问时间:10/1/2016 最后编辑:RPichioliuser4221591 更新时间:10/2/2016 访问量:464
按下一个按钮进行打印后,将焦点放在另一个按钮上
After a button is pressed for printing, focus on another button
问:
我有一个按钮,用于打印目的。我希望在按下打印按钮后,焦点转到另一个按钮。但是我的代码不起作用。
我从firebug中得到的错误是.
打印过程已成功完成,但打印后,焦点未转到“btn_CR”按钮。TypeError: document.getElementById(...) is null
我怎样才能做到这一点 打印过程结束后,焦点转到“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() 函数位于外部“print.js”文件中
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
答:
1赞
Mladen P
10/1/2016
#1
不能在 .js
文件中使用内联表达式。
尝试使用<%=btn_CR.ClientID%>
document.getElementById('btn_CR').focus();
此外,在您的函数中,您正在调用 .没有元素 所以它会返回 ,并且会中断。printPage
getElementById(printIt').innerHTML
ID 'printIt'
null
null.innerHTML
评论
0赞
user4221591
10/1/2016
感谢您的及时回复。那么我应该用什么来把焦点放在另一个按钮上呢?
0赞
user4221591
10/1/2016
我已经提供了完整的aspx代码。请看一下。谢谢!
0赞
Aristos
10/1/2016
#2
这部分代码在 中没有被翻译。
现在,因为您需要翻译它,所以在javascript文件之前可以做到这一点,例如,您可以这样做:<%=btn_CR.ClientID%>
print.js
<script>
var NextFocusButtonId = <%=btn_CR.ClientID%>;
</script>
<script type="text/javascript" src="../scripts/print.js"></script>
在你写的里面print.js
document.getElementById(NextFocusButtonId).focus();
评论
0赞
user4221591
10/1/2016
我应该使用 or 吗?请提出建议。document.getElementById(NextFocusButtonId).focus();
document.getElementById('NextFocusButtonId').focus();
0赞
user4221591
10/1/2016
我已经提供了页面的 HTML。请看一下代码。我已经按照您的建议进行了更改,但仍然无法解决问题。谢谢!!!
评论
getElementById