self.focus stopping all keyboard input to window

M

Mark

Hi,

At the top of my php file I have got :-

<body onblur="self.focus();">

so when I click off onto another window, my window comes back up in front
which is perfect. The problem however, is that when I try to type into my
form boxes, the key transfers are all being lost (i.e. keyboard is
disabled)!

Can anyone shed any light?


Thanks, Mark
 
D

DU

Mark said:
Hi,

At the top of my php file I have got :-

<body onblur="self.focus();">

so when I click off onto another window, my window comes back up in front
which is perfect. The problem however, is that when I try to type into my
form boxes, the key transfers are all being lost (i.e. keyboard is
disabled)!

Can anyone shed any light?

Maybe you can shed more light on the whole context. Is that a secondary
window? Why do you need to make that window always up in front of other
windows? Can you elaborate on the analysis, webpage context, design
decision? You maybe trying to find a correct/exact solution to a
bad/wrong design decision.

You understand that making a window get the focus like you do is very
restrictive, very constraining, very user-unfriendly. That's why browser
manufacturers (Opera, Mozilla for starters; don't know about Konqueror,
Safari) are now granting users absolute veto powers over raising and
lowering (against pop-under) windows.

DU
 
M

Mark

Hi Du,
Maybe you can shed more light on the whole context. Is that a secondary
window? Why do you need to make that window always up in front of other
windows? Can you elaborate on the analysis, webpage context, design
decision? You maybe trying to find a correct/exact solution to a bad/wrong
design decision.

It is for a personal-use script. The program does a 'window.open' to display
a page
which shows current horse-prices. The main window then goes to Betfair. I
then need
to be able to navigate the betfair website, without my 'information' window
disappearing,
so that I may compare prices.

I agree it may not be the best way to do things, but I was told it would be
the simplest :-}
Basically, I need some code which makes sure my window is always at the
front of the
betfair window. I do not care whether its java, win32, PHP or ASP as long as
it gets the
job done :)

Any help would be appreciated.


Thanks, Mark
 
M

Mark

Andrew Thompson said:
I'll try it again, slower..

<body onblur="self.focus();"> creates problem. :-(

<body> fixes problem. ;-)

Yes, but will sadly create a new problem - My window will no longer stay at
the front :-(


Thanks, Mark
 
R

rf

Mark said:
Yes, but will sadly create a new problem - My window will no longer stay at
the front :-(

How do you know your viewer *wants* your page at the front? That is why they
clicked another window, isn't it? To, you know, look at the *other* window.

If I were to encounter such a page I would immediately press the back
button.
 
M

Mark

rf said:
How do you know your viewer *wants* your page at the front? That is why
they
clicked another window, isn't it? To, you know, look at the *other*
window.

If I were to encounter such a page I would immediately press the back
button.

Because it is for an inhouse development on an intranet - and they /will/
obey me ;-)


Thanks, Mark
 
M

Mark

Andrew Thompson said:
That changes *everything*, I was thinking you meant on an
internet site visited by others.

For a personal script, you can guarantee the environment
(including single browser) and adjust security settings and
plug-ins (such as pop-up blockers) as required.

Yes, I believe I have done all this to a satisfactory level. The window
opens up, and sits there with my page. The main window gets re-directed to
the required destination. If you click on the main window, my window comes
up on top - All works perfectly, except for the fact, I cannot type in my
window (the window contains a form) rendering the whole application useless
:-(

It /appears/, that when I type, the onblur event is being called, so
recalling the window, rather than registering the keypress as a character.

Have you tried framing the two pages? What are the URLs?

No, this is not possible as I need the full screen of the main page, then
this popup window is a small window which overlaps a square piece of 'dead
space' on the main site.

On a side note --- Windows programming is all very new to me, so things like
eventhandlers are a complete nightmare. I used to program in C++/ASM back in
the days of dos, so I do understand the basics of logic and functions etc,
but the windows part is a real non-starter for me - Can anyone recommend any
books with good examples? I have various 'reference' books for function
names / parameters, but these obviously do not show me how to implement the
procedure into my code.


Thanks, Mark
 
R

rf

Mark said:
No, this is not possible as I need the full screen of the main page, then
this popup window is a small window which overlaps a square piece of 'dead
space' on the main site.

Sounds like a good excuse for an iframe.
 
R

RobB

Mark said:
Yes, I believe I have done all this to a satisfactory level. The window
opens up, and sits there with my page. The main window gets re-directed to
the required destination. If you click on the main window, my window comes
up on top - All works perfectly, except for the fact, I cannot type in my
window (the window contains a form) rendering the whole application useless
:-(

It /appears/, that when I type, the onblur event is being called, so
recalling the window, rather than registering the keypress as a character.



No, this is not possible as I need the full screen of the main page, then
this popup window is a small window which overlaps a square piece of 'dead
space' on the main site.

On a side note --- Windows programming is all very new to me, so things like
eventhandlers are a complete nightmare. I used to program in C++/ASM back in
the days of dos, so I do understand the basics of logic and functions etc,
but the windows part is a real non-starter for me - Can anyone recommend any
books with good examples? I have various 'reference' books for function
names / parameters, but these obviously do not show me how to implement the
procedure into my code.


Thanks, Mark

Boy, people certainly are argumentative around here...

Have you looked into HTAs? Where browser coverage isn't an issue - and
you don't mind using IE (ugh) the flexibility is tremendous.

Otherwise...

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>untitled</title>
</head>
<body>
<input type="button" value="open it"
onclick="window.open('pop.html','pop','width=400,height=300,left=100,top=100,status=0')"
/>
</body>
</html>


[pop.html]
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>untitled</title>
<script type="text/javascript">
//<![CDATA[

var timerID = null;

onblur = function()
{
timerID = setTimeout('self.focus()', 50);
}

onload = function()
{
var i = 0, el, els =
document.getElementsByTagName('form').item(0).elements;
while (el = els.item(i++))
if (/text(area)?/.test(el.type))
{
el.onfocus = function()
{
if (timerID)
clearTimeout(timerID);
}
el.onblur = function()
{
timerID = setTimeout('self.focus()', 50);
}
}
self.focus();
}

//]]>
</script>
</head>
<body>
<form style="width:120px;">
<input type="text" name="foo" value="" />
<input type="text" name="feh" value="" />
<textarea name="hah" rows="4" cols="24"></textarea>
</form>
</body>
</html>

Just uses a timer to 'reverse' the order of blur/focus firing so you
can control them. Assuming one form in that popup.
 
M

Mark

RobB said:
Boy, people certainly are argumentative around here...

Sure are <lol>, it has took numerous replys before any kind of code /
functions were even mentioned.

Have you looked into HTAs? Where browser coverage isn't an issue - and
you don't mind using IE (ugh) the flexibility is tremendous.

Sorry to sound a bit thick, but what does HTAs stand for?

Otherwise...

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

One phrase springs to mind 'King amongst men'.

Rob, I cannot thank you enough. I have just got home at 03:40am after
spending the day driving through snow and achieving very little- copied and
pasted your code and run it, and it works perfectly. I am not even going to
try and understand nor modify it until I have had at least 5 hours sleep,
but at least now, I know I have the basecode to do the job properly.

Thanks ever so much, it is truly appreciated.


Thanks, Mark
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,012
Latest member
RoxanneDzm

Latest Threads

Top