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

标签 javascript asp.net client-side

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

我从 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() 函数位于外部“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.

最佳答案

您不能使用内联表达式 <%=btn_CR.ClientID%> .js 文件。 尝试使用

document.getElementById('btn_CR').focus();

此外,在您的 printPage 中您正在调用的函数 getElementById(printIt').innerHTML 。不存在 ID 'printIt' 的元素所以它会返回 null ,和null.innerHTML会坏掉的。

关于javascript - 按下一个按钮进行打印后,将焦点放在另一个按钮上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39807906/

相关文章:

c# - 如何使用 List<ListItem> 填充 DropDownList

client-side - 使用 Ember.js 开发的大型网站

javascript - 用于客户端和服务器端渲染的模板语言

javascript - 当使用纯 JavaScript 轻松完成任务时,使用 JQuery 是个好主意吗

javascript - 如何等待 iframe 重新加载其内容?

css - 字体在 Release模式下无法正确呈现,但在 ASP NET Webforms 的 Debug模式下正常工作

javascript - HTML5 Canvas - 在更新循环中绘制图像

asp.net - 路径长度太长时 TeamCity DNU 发布失败

javascript - JQuery/Javascript -- 基于选择而不是值显示 div

javascript - 处理 imageData 的 Web worker 使用 Firefox 而不是 Chrome