Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 783
  • Last Modified:

Flash: link to external site doesn't work when swf is hosted elsewhere

I have a problem with creating a link in a flash movie. The situation is as follows:

1) I have a flash banner with a link in it. In fact, the whole banner is a link (in the source file it's a transparent rectangle).
2) I publish the file, upload it to a webserver, all files in the same folder. I open the page, the banner shows, the link works.
3) I move the banner to another domain, edit the html to link to the proper location, reload the page, I still see the banner.
4) I click the banner, but nothing happens. The link doesn't work anymore.

Is this normal behavior? Do I need to load the banner from the same domain to prevent abuse or something? I've uploaded the files plus the source file so you can test for yourself.
flashlink.zip
0
R7AF
Asked:
R7AF
  • 5
  • 3
  • 2
2 Solutions
 
scrathcyboyCommented:
You should be able to load the banner and the flash from a different website, as long as you give a COMPLETE URL in the path --

http://www.othersite.com/flash/movie.swf

Check to see if the path is full like this.
0
 
R7AFAuthor Commented:
You misunderstand. The flash movie loads. I can see it. The only problem is that the link in the movie doesn't work, if (and only if) the movie is loaded from another domain.

The page: www.abc.com/test.html
Banner A: www.abc.com/banner-a.swf
Banner B: banners.def.com/banner-b.swf

Banner A has a working link. The link on banner B (e.g. to wikipedia.org) does not work. What I want to know is why it doesn't work? Am I doing something wrong?
0
 
scrathcyboyCommented:
I got that the first time.  Neither links are FULL links.  Browsers have a better time with the WWW prefix, because they are used to that.  But the -- banners.def.com -- is not a normal link that can be decided by the browser to just put an http:// in front of it.

So as I said, SPECIFY THE FULL PATH, starting with http://  -- then whatever -- and they should work.
0
Automating Your MSP Business

The road to profitability.
Delivering superior services is key to ensuring customer satisfaction and the consequent long-term relationships that enable MSPs to lock in predictable, recurring revenue. What's the best way to deliver superior service? One word: automation.

 
blue-genieCommented:
R7AF, sounds like a cross domain issue.
have a read here

http://www.flashperfection.com/tutorials/Flash-Cross-Domain-Access-85118.html
0
 
R7AFAuthor Commented:
@scrathcyboy
I wasn't clear, but I use a full link, so including http://. Sorry for the confusion.

@blue-genie
I'm afraid it is something like this. But I'm not reading data from another domain, I'm just linking to it. I can understand that this can be a problem because a malicious banner could redirect you to a different site, e.g. an almost exact copy with a very similar domain name, and that is a security issue because it will not be obvious all the time. I suppose that the crossdomain policy file should be hosted on the other domain, and that's a problem.
0
 
scrathcyboyCommented:
flash files can link to external links and they do all the time.  If flash couldn't do this, it would be rather useless, wouldn't it.
0
 
blue-genieCommented:
do i understand this correctly.

you  have 2 domains?
EXACT swf embedded in EXACT html files works on one domain and not another? or is the situation something else?
0
 
R7AFAuthor Commented:
@scrathcyboy
I think you misunderstand the situation. It's probably a security issue.

@blue-genie
Yes. The banner is hosted on another domain, not even a subdomain. See the mockup code below. The banner is hosted on banners.def.com, the page is on www.abc.com. I have tested this on different machines. When I put the banner on www.abc.com, the link works, when the banner is hosted on banners.def.com, it doesn't work.
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" 
	codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=10,0,0,0" 
	width="245" height="250" id="banner-paris-holiday" align="middle">
	<param name="allowScriptAccess" value="sameDomain" />
	<param name="allowFullScreen" value="false" />
	<param name="movie" value="http://banners.def.com/media/banner-paris-holiday.swf" />
	<param name="quality" value="high" /><param name="bgcolor" value="#ffffff" />
	<embed src="http://banners.def.com/media/banner-paris-holiday.swf" quality="high" bgcolor="#ffffff" 
		width="245" height="250" name="banner-paris-holiday" align="middle" 
		allowScriptAccess="sameDomain" allowFullScreen="false" type="application/x-shockwave-flash" 
		pluginspage="http://www.adobe.com/go/getflashplayer" />
</object>

Open in new window

0
 
R7AFAuthor Commented:
I found the solution. I was trying to get the crossdomain.xml working today, which didn't result in the banner link working. Then suddenly I saw this parameter "allowScriptAccess", which was set to "sameDomain". I googled for it, then found that you could set this to "always", after which the link in the externally hosted banner worked.
0
 
R7AFAuthor Commented:
I found the solution myself, and award blue-genie for the suggestions made.
0

Featured Post

When ransomware hits your clients, what do you do?

MSPs: Endpoint security isn’t enough to prevent ransomware.
As the impact and severity of crypto ransomware attacks has grown, Webroot has fought back, not just by building a next-gen endpoint solution capable of preventing ransomware attacks but also by being a thought leader.

  • 5
  • 3
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now