|
|
|
#1 |
|
Senior Member
Join Date: Feb 2008
Posts: 102
|
How do I modify the displayed browser url?
I have a site that consists of multiple html pages that parallel the flash site's pages - for SEO purposes. Both sets of pages use the same XML source (to avoid any appearance of cloaking).
I would like to modify the browser URL to reflect the currently displayed state. I've already got the other direction covered - when the user arrives via a deep-link URL, I pass in Flashvars using SWFObject. I found SWFAddress, but it forces a "#" sign into the displayed URL, and there doesn't seem to be any way to turn it off. I realize it's intended to be used with named anchors, but that approach doesn't accommodate what I'm trying to do - I don't want just a single HTML page with all site content on it, using named anchors to jump around. That seems to me to be contrary to best practices - rather I should have a single HTML page for each state in my Flash site. The approach I'm embarking on will actually use a single PHP page which will generate a custom HTML page when requested - e.g. mysite.com/index.php?page=about will load the "about" state text (if requested by Google) or direct to the "about" page of the SWF (if the user has Flash/javascript). Is it possible to change th displayed browser URL through some method that's a bit more flexible than SWFAddress? |
|
|
|
|
|
#2 |
|
Mod
Join Date: Mar 2002
Location: press the picture...
Posts: 12,702
|
You can create a cookie in php or a shared object in flash with the browser url and when you are in flash you can call the cookie information.
__________________
![]() - The right of the People to create Flash movies shall not be infringed. - | www.Flashscript.biz | Help a little girl, Ana, who has cancer. | Flashscript Biz Classes/Components | The new Event design pattern | Clothing for Haiti | |
|
|
|
|
|
#3 |
|
Senior Member
Join Date: Feb 2008
Posts: 102
|
Hmm - not sure I understand how that would work. How does saving a cookie (or shared object) translate into changing what's displayed in the browser url?
|
|
|
|
|
|
#4 |
|
Mod
Join Date: Mar 2002
Location: press the picture...
Posts: 12,702
|
I probably misunderstood
. Where do you want to change the URL, in the php page?
__________________
![]() - The right of the People to create Flash movies shall not be infringed. - | www.Flashscript.biz | Help a little girl, Ana, who has cancer. | Flashscript Biz Classes/Components | The new Event design pattern | Clothing for Haiti | |
|
|
|
|
|
#5 |
|
Will moderate for beer
Join Date: Apr 2007
Location: Austin, TX
Posts: 5,253
|
Do you mean that you want to have a swf which if it was embedded in this page would change the displayed url from "http://board.flashkit.com/board/showthread.php?t=767321" to something else?
I sure hope that's not possible. Imagine the field day phishers would get out of that, when evilbastards.com (no offense to whoever owns that) can post a page that looks like it came right from bankofamerica.com. |
|
|
|
|
|
#6 |
|
Senior Member
Join Date: Feb 2008
Posts: 102
|
Yup - that's what I'm thinking of. You're right - prone to evil. My uses are less nefarious - I just want the user to be able to bookmark a state of the SWF and return there later.
I know current deep-linking vogue uses named anchors - I was hoping to avoid that approach, because you're still working with the same base HTML page. I want to deliver a different HTML page for each page/state IF the user (Google) doesn't have Javascript/Flash. What I've worked out is pretty slick. I have a single PHP page (index.php) which, depending on the query string, will load the relevant state (title, body text, subnav) from an XML file. So "index.php?page=about" sets the page title to About and loads the XML body text for the About page. The SWF for the site uses the same source XML for its body text for each state - so no worries about cloaking, and no need to enter the content twice. Google can crawl and index the whole HTML version of the site, and users following Google links to particular pages will cause the PHP file (if they have Javascript/Flash) to pass a flashvar to SWFObject so the Flash file loads the relevant (e.g. "About") state. The only problem is, if the user comes in on "index.php?page=about", when they start clicking around the SWF, the url will remain "page=about". Not a deal-killer, but not perfect - it'd be nice if it changed to the currently chosen state. I think you can do what you fear using SWFAddress - can't you? Or Javascript anyway - I think you can rewrite the displayed URL. You can certainly rewrite the part after the domain. |
|
|
|
|
|
#7 |
|
OOP is one letter from OOPS
Join Date: Aug 2005
Location: New Hope, PA
Posts: 2,668
|
The common way that what you are talking about (sometimes known as smart URLs, the SEO friendly ones), is by using the Apache rewrite module (takes you to a page other than that displayed in the address bar).
The ability to change the URL with JavaScript is done via the window.location property, but setting this value will actually take you to that url (I have never seen it be able to change the displayed url without actually taking you to it) I am not familiar with SWFAdrress, but the only way I am aware of displaying any other address in the address bar is the Mod Rewrite. Any one else know more about this?
__________________
Jeremy Wischusen Flash - Flex - LAMP - Web Developer Purple Inc AS OOP FAQ-Best Practices Thread | Flashkit OOP Tutorials | Purple Inc (day job) | Blog
|
|
|
|
|
|
#8 |
|
Senior Member
Join Date: Feb 2008
Posts: 102
|
SWFAddress uses javascript top.location.hash to change the displayed URL - it doesn't redirect, just changes what is displayed.
At least that's how I think it works - the javascript is so optimized it's pretty much indecipherable. Still it's an interesting approach - google SWFAddress if you want to dig any deeper. |
|
|
|
|
|
#9 |
|
OOP is one letter from OOPS
Join Date: Aug 2005
Location: New Hope, PA
Posts: 2,668
|
Ok I took a look at the demo for SWFAddress. It is using anchor names (the same idea that allows you to link to a specific location within a page). For example:
http://asual.com/swfaddress/samples/flash/#/contact/ Note the # character. So that would allow you to change the displayed URL without actually leaving the page since the browser thinks you are linking to a named anchor within the page. Kind of a neat trick.
__________________
Jeremy Wischusen Flash - Flex - LAMP - Web Developer Purple Inc AS OOP FAQ-Best Practices Thread | Flashkit OOP Tutorials | Purple Inc (day job) | Blog
|
|
|
|
![]() |
|
||||||
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|