Question

How to set focus on flash in safari?

Asked by: clarions979

Hi,

I want to set focus on my flash file when the page loads.
I am using focus() method in javascript and its working fine in IE and Firefox.

how would i focus on my flash file on load. so that i can use tab keys to access buttons on the flash file.

here is a link to my working file:
http://nma.couchcreativedev.com/flash/

in short i need a javascript code which will enable safari to set focus on the flash file on page load.

thanx in advance

var myFlash = document.getElementById( 'flashcontent' );
if ( myFlash ) { myFlash.focus();}

                                  
1:
2:

Select allOpen in new window

This Question has been solved and asker verified All Experts Exchange premium technology solutions are available to subscription members.

Subscribe now for full access to Experts Exchange and get

Instant Access to this Solution

  • Plus...
  • 30 Day FREE access, no risk, no obligation
  • Collaborate with the world's top tech experts
  • Unlimited access to our exclusive solution database
  • Never be left without tech help again

Subscribe Now

Asked On
2009-06-12 at 02:36:00ID24486063
Topics

JavaScript

,

Hypertext Markup Language (HTML)

,

Safari Web Browser

Participating Experts
2
Points
500
Comments
20

Trusted by hundreds of thousands everyday for fast, accurate and reliable tech support.

  • "The time we save is the biggest benefit of Experts Exchange to Warner Bros. What could take multiple guys 2 hours or more each to find is accessed in around 15 minutes on Experts Exchange." Mike Kapnisakis, Warner Bros.
  • "Our team likes having a resource that is more secure than just using Google and most experts using this service really know their stuff. It's nice to look here first versus using Google." Dayna Sellner, Lockheed Martin
  • "Anytime that I've been stumped with a problem, 9 out of 10 times Experts Exchange has either the accepted solution or an open discussion of the potential solution to the problem." Kenny Red, eBay Inc.

See what Experts Exchange can do for you.

Got a question?

We've got the answer.

Experts Exchange has been collecting answers to technology questions since 1996…3 million and counting! If you have a question, chances are we already have your answer.

Screenshot of Experts Exchange Knowledgebase

Need individual assistance?

Our experts are ready to help.

If you can't find the exact answer you're looking for, ask our exclusive community of 50,000 experts. You’ll get a personalized answer from a trusted professional.

Screenshot of Experts Exchange Knowledgebase

Want to learn from the best?

Read articles from industry experts.

Thousands of free tech tips, tricks, how-to’s and tutorials are available in our peer reviewed articles section. See for yourself how smart our experts are, no login required.

Screenshot of an Article

Working on a long term project?

Store your work and research.

Save solutions to your questions, answers you’ve discovered through searching plus helpful articles in your personal knowledgebase for easy future access.

Screenshot of Experts Exchange Knowledgebase

Access the answers to your technology questions today.

Subscribe Now

30-day free trial. Register in 60 seconds.

What Makes Experts Exchange Unique?

Members of the expert community talk about why the experience at Experts Exchange is different than what you will find anywhere else.

Trusted by the world's most respected brands.

image of each brand's logo

Faithfully serving IT professionals since 1996.

Experts Exchange Logo

Try it out and discover for yourself.

Subscribe Now

30-day free trial. Register in 60 seconds.

Related Solutions

  1. getElementById javascript set focus error in FireFox
    The following properly sets the focus to the input field being tested in IE, Opera, and Safari (Windows). It does not work in Firefox; instead the focus goes to wherever you sent it in order to leave the field. In the form: <input type="text" size="3"...
  2. iFrame NOT Working In IE / Safari
    The following iFrame shows : "Internet Explorer cannot display the webpage" in IE and "Blank Page " in Safari. Any solutions?
  3. Safari
    Are there any known issues with the safari browser?

Free Tech Articles

  1. WARNING: 5 Reasons why you should NEVER fix a computer for free.
    It is in our nature to love the puzzle. We are obsessed. The lot of us. We love puzzles. We love the challenge. We thrive on finding the answer. We hate disarray. It bothers us deep in our soul. W...
  2. SCCM OSD Basic troubleshooting
    SCCM 2007 OSD is a fantastic way to deploy operating systems, however, like most things SCCM issues can sometimes be difficult to resolve due to the sheer volume of logs to sift through and the dispe...
  3. Migrate Small Business Server 2003 to Exchange 2010 and Windows 2008 R2
    This guide is intended to provide step by step instructions on how to migrate from Small Business Server 2003 to Windows 2008 R2 with Exchange 2010. For this migration to work you will need the fo...
  4. Create a Win7 Gadget
    This article shows you how to create a simple "Gadget" -- a sort of mini-application supported by Windows 7 and Vista. Gadgets can be dropped anywhere on the desktop to provide instant information, ...
  5. Outlook continually prompting for username and password
    There have been a lot of questions recently regarding Outlook prompting for a username and password whilst using Exchange 2007. There are a few reasons why this would happen and I will try to cover t...
  6. Backup Exchange 2010 Information Store using Windows Backup
    There seems to be quite a lot of confusion around the ability to backup Exchange 2010 using the built in Windows Backup feature. This stems from the omission of this feature prior to Exchange 2007 s...

Cloud Class Webinars

  1. Avoiding Bugs in Microsoft Access
    Alison Balter takes and in-depth look at avoiding bugs in Access. In this webinar you will learn about using the immediate window to debug your applications, invoking the debugger, using breakpoints to troubleshoot, stepping through code, setting the next statement to execute, ...
  2. Top 10 Best New Features in Visio 2010
    Scott Helmers gives live demonstrations of the top 10 new features in Visio 2010. This webinar will teach you how to create compelling diagrams by adding shapes to the page with a single click, linking the shapes in a diagram to data in Excel (or SQL Server, or SharePoint), ...
  3. IT Consultant Business Secrets Revealed
    Michael Munger, Experts Exchange tech pro and IT consultant, pulls back the curtain on his very successful businesses and answers question on every IT consultant and business owner should know about. He shares secrets on what he did to solve the 5 most common problems in IT, ...
  4. Disaster Recovery and Business Continuity
    Quest CTO, Mike Billon, gives an overview of the steps involved in building a dunamic disaster recovery plan. Through case studies and an examination of software/hardware tooles for monitoring and testing, you'll gain a better understandin of where you are, where you want ...
  5. Organize Your Visio Diagrams with Containers and Lists
    Scott Helmers uses cross functional flowcharts, wireframe diagrams, data graphic legends and seating charts to teach you: how to ustilize all three new structured diagram components in Visio 2010, the best practices for organizeing shapes in previous version of Visio, how to organize ...
  6. How to Us Objects, Properties, Events and Methods in Microsoft Access
    Alison Dalter gives an in-depbth look at objects, properties, events and methods in Microsoft Access. In this webinar you will learn about using the object browser, referring to objects, working with properties and methods, working with object variables, understanding the ...

Join the Community

Give a Little. Get a Lot.

Join the community of experts here and help other tech pros by answering question in your area of expertise. You can earn FREE access to all Experts Exchange's premium features and resources.

Join the Community

Answers

 

by: x_comPosted on 2009-06-12 at 02:42:41ID: 24610537

Hi clarions979,
Make sure the page is fully rendered before you set focus on the flash object.
eg:
....//your html code...
<!-- put focus event at end of the page -->
<script>
var myFlash = document.getElementById( 'flashcontent' );
if ( myFlash ) { myFlash.focus();}
</script>

Check this similar post:
http://stackoverflow.com/questions/594821/object-focus-problem-with-safari-and-chrome-browsers

 

by: fsze88Posted on 2009-06-12 at 03:49:36ID: 24610877

<body onload="document.getElementById('myFlash').focus();">

 

by: clarions979Posted on 2009-06-12 at 04:08:28ID: 24610965

Hi,

First of all thanks to all of you for getting back to me so quick.

now the problem is that how would i tell that the whole page is loaded?

at the moment the chunk of code is at the end of the page..

is there any function which would trigger when the content of the page is loaded?

 

by: fsze88Posted on 2009-06-12 at 04:13:18ID: 24610991

<body onload="alert('something');"></body>

or
window.onload = function(){
alert('something');
}

 

by: clarions979Posted on 2009-06-12 at 04:22:26ID: 24611035

just doesn't want to work on safari... i have tried every thing possible ..

please help me its realy urgent...

safari :@

 

by: clarions979Posted on 2009-06-13 at 06:45:52ID: 24619202

Hey guys..

Does anybody have any other solution for this?

i told u its pretty urgent :(

cheers

 

by: x_comPosted on 2009-06-14 at 22:55:48ID: 24626524

Hi clarions979,
Sorry for the delay. Possible post some of your code snippet regarding the focus event that resides?
You can try check DOM's "document.ready" event before load the focus event as suggested above.
I'm using JQuery framework to verify it readiness
http://snippets.dzone.com/tag/document+ready

JQuery
=========
document).ready(function() {
   // put all your jQuery/javascript goodness in here.
   });

 

by: clarions979Posted on 2009-06-15 at 20:03:19ID: 24634610

now iam getting realy fed up of this safari bug ...

i have been trying to fix this for last 5, 6 days .. but not even getting closer to solving this issue

x-com: i have tried ur thing aswell .. doesn't wana work ..

i even inlcuded a javascript function which would be called from inside the flash file when its loaded.. but some how .. the .focus thing doesn't seem to work

please help!

here is what i am doing at the moment :

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
    <head>
    <title>NMA - Empire Voyaging</title>
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<script type="text/javascript">
				window.onload = function() {
					self.resizeTo(screen.availWidth,screen.availHeight);
					self.moveTo(0,0);
				};
        </script>
	 <!--<script type = "text/javascript" src = "/flash/js/browser_detection.js"> </script>-->
     <script type="text/javascript">
	/*if ( saf ){
		alert(saf);
	}*/
	 </script>
<script language="JavaScript"> 
	var b_ie;
    if(navigator.appName == "Netscape") { // Mozilla and safari
		document.write('<script src="swfobject/swfobject.js" type="text/javascript"><\/script>'); 
		b_ie = false;
		
    } 
	else { // IE 
		b_ie = true;
		document.write('<script src="swfobject/swfobject2.js" type="text/javascript"><\/script>'); 
    } 
    </script>		
	<style type="text/css">
		/* hide from ie on mac \*/
			html {
				height: 100%;
				overflow: hidden;
			}
			#flashcontent {
				height: 100%;
			}
			/* end hide */
			body {
				background: #000;
				height: 100%;
				margin: 0;
				padding: 0;
			}
	</style>        
	</head>
	<body onload="setFocusOnFlash()">
        <div id="flashcontent">
            <strong>You need to upgrade your Flash Player</strong>
            <p><a href="http://www.adobe.com/go/getflashplayer"><img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" /></a></p>
        </div>
        <script type="text/javascript">
			if(b_ie)
			{
				var so = new SWFObject("empire_voyaging.swf", "empire_voyaging", "100%", "100%", "9", "#000000");
				so.addParam("scale", "noscale");
				so.write("flashcontent");
			}
			else
			{
				var flashvars = {};
				var params = {wmode: 'transparent'};
				var attributes = {};
				swfobject.embedSWF("empire_voyaging.swf", "flashcontent", "100%", "99.6%", "9.0.0", "expressInstall.swf", flashvars, params, attributes);
				function setFocusOnFlash()
				{
					var myFlash = document.getElementById( 'flashcontent' );
					if ( myFlash ) { myFlash.focus(); }
				}
 
			}
	</script>
	</body>
</html>

                                              
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:

Select allOpen in new window

 

by: x_comPosted on 2009-06-15 at 20:44:35ID: 24634740

Hi clarions979,
Have you try invoke the "setFocusOnFlash" event immediately at line of 71 as posted above?
eg:
function setFocusOnFlash()
                                {
                                    //......code
                                 }

setFocusOnFlash();

 

by: clarions979Posted on 2009-06-15 at 21:28:50ID: 24634854

hi x com,

thanx for the reply, yes i tried that aswell.. no luck with that.

cheers.

 

by: x_comPosted on 2009-06-15 at 21:43:49ID: 24634897

Hi clarions979,
Try put some delay before invoke the "setFocusOnFlash" event and check if the problem still persist.
eg:
  window.setTimeout("setFocusOnFlash();",4000);//4 second

 

by: clarions979Posted on 2009-06-15 at 21:47:41ID: 24634910

:) thanx again xcom..

but have tried that aswell .. i even tried swithching the display to none of the flashcontent div by using this timeout method which works fine .. but when i put focus instead of the display='none'.. doesn;t work..

 

by: x_comPosted on 2009-06-15 at 21:54:32ID: 24634925

Ok, can you create a very simple page and perform the "focus" checking. See if the focus property working properly in Safari.
eg:
html
=======
<html>
<script>
 function setFocusOnFlash()
                                {
                                        var myFlash = document.getElementById( 'flashcontent' );
                                        if ( myFlash ) { myFlash.focus(); }
                                }
setFocusOnFlash();
</script>
<body>
<div id='flashcontent'>Testing........</div>
</body>
</html>

 

by: clarions979Posted on 2009-06-15 at 21:57:45ID: 24634937

:)

i have tried to put focus on a text field which works fine .. and i have put it on load aswell ..

and as soon as the page loads the cursor goes to the the text field

so that means the focus property works fine in safari .. but not for flash . i.e for me

cheers

 

by: x_comPosted on 2009-06-15 at 22:10:19ID: 24634992

Hmm, it seem like Safari's behaviour limitations for setting focus on flash object.
http://www.robrusher.com/2008/04/28/set-cursor-focus-in-flex/
Perhaps Safari should release its patch to resolve this issue.

 

by: clarions979Posted on 2009-06-15 at 22:16:53ID: 24635021

so that means this problem does not have any solution at the moment ?

 

by: clarions979Posted on 2009-06-23 at 23:07:52ID: 24698628

is there any one else who can help.  my project is stuck on this .. the client wants to know when this will be ready ..

please guys help me here .. i am in desperate need of some kind of help

cheers,
Tayyab

 

by: x_comPosted on 2009-06-24 at 00:58:52ID: 24699041

clarions979, you can try perform client script to "manual" click any object that can set focus on the flash item(in onload event) since it work if click manually?

 

by: clarions979Posted on 2009-06-24 at 01:01:27ID: 24699050

thanx x_com ..

but can you please clarify as to how its done?



thanx for your help dude.

 

by: x_comPosted on 2009-06-24 at 01:24:48ID: 24699168

Not sure if this work in Safari. Here is the idea that mentioned.
eg:

html
=======
<html>
<script>
 function setFocusOnFlash()
                                {
                                        var myFlash = document.getElementById( 'flashcontent' );
                                        if ( myFlash ) { myFlash.focus(); }
                                }
 
function SetFocus(){
  document. getElementById('lnk').click();
}
</script>
<body onload="javascript:SetFocus();">
<a style="display:none" id="lnk" onclick="javascript: setFocusOnFlash();"></a>
<div id='flashcontent'>Testing........</div>
</body>
</html>

                                              
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:

Select allOpen in new window

20120131-EE-VQP-002

3 Ways to Join

30-Day Free Trial

The Experts

98% positive feedback on 31,087 answers since March 2000. angeliii is a Microsoft Most Valuable Professional for his work with MS SQL Server & Develoment.

He has also proven his knowledge of Visual Basic Programming, PHP Scripting and Oracle Databases.

The Experts

97% positive feedback on 10,752 answers since July 2000. lrmoore has more than 18 years experience in the networking industry.

The six-time Mircosoft MVPs specialties include firewalls, virtual private networking, and network management.

Testimonials

"...and excellent source for support... Kind of like having your very own IT dept." Electriciansnet

Testimonials

"I was apprehensive at signing up at first. However... it has already made my life as an IT administrator much easier." JaCrews

Testimonials

"WOW! You guys have great, active, and knowledgeable people on here." moore50

Business Clients

Business Clients

In the Press

"If you’ve got a question... Experts Exchange can supply an answer.”

In the Press

"...an invaluable aid for both IT professionals and those who require tech support."

In the Press

"where IT professionals provide quick answers on just about any topic"

Business Account Plans

Loading Advertisement...