有3个程序,Pers1,Pers2,Pers3。 Pers1和Pers2有填写的表格,Pers3会生成一份报告。 Pers2包括Pers1,Pers3包括Pers2。因此,如果你得到报告,Pers1和Pers2仍然会显示,如果你不喜欢你的报告,你可以调整你的表格。所有这些都是用ColdFusion编写的。
有Javascript可以将重点放在所有3个程序中,并且工作正常。
在Pers3中,可以单击报告的标题并隐藏Pers1和Pers2表单。这允许用户在没有前面的表格的情况下打印报告。要再次显示Pers1和Pers2,请再次单击Pers3中的标题。
一切正常,但是当我点击标题返回Pers1和Pers2时,我在Pers3中失去了焦点。我尝试了很多东西,但到目前为止还没有成功。用于打开和关闭Pers1和2的Javascript,包括我重新聚焦的尝试(这里有3个div必须关闭/打开):
function hider() {
var buttonrep2 = document.getElementById('shutoff');
var buttonrep1 = document.getElementById('hiderep1');
var buttontop = document.getElementById('hidereptop');
if(buttonrep2.style.display != 'none' ) {
buttonrep2.style.display = 'none';} //shut off
else {
buttonrep2.style.display = ''; }//turn on
if(buttonrep1.style.display != 'none' ) {
buttonrep1.style.display = 'none';}
else {
buttonrep1.style.display = '';}
if(buttontop.style.display != 'none' ) {
buttontop.style.display = 'none';}
else {
buttontop.style.display = ''};
thefocus('reporthead')
}//end of function hider
重新聚焦,这在其他任何地方都可以正常工作:
function thefocus(id) {
document.getElementById(id).focus();
}
有没有人知道我可能做错了什么,或者如何让它工作?
答案 0 :(得分:1)
如果您为HTML提供tabindex
属性,则可以专注于非输入元素:
<h1 tabindex="0" id="reportHead">Report Header</h1>
然后你可以使用
document.getElementById('reportHead').focus();