2012-04-11 8 views
1

Der Hyperlink kommt nicht in Chrome und Firefox (in Firefox Link öffnet sich, wenn ich klicke, aber Zeiger nicht anklickbar angezeigt). Ich versuche, dies mit:Hyperlink um Flash-Banner

<a href="http://www.teamrustic.com/" target="_blank"> 
    <embed class="ads" 
      style="margin:0px;border:0px;" 
      src="swf/flash_banner.swf" 
      width="315" height="100" wmode="opaque"> 
    </embed> 
</a>​ 

versucht, mit CSS .ads{cursor : pointer;}

Antwort

2

Das Problem ist, dass der Blitz das Click-Ereignis wird Einfangen und nicht durch das DOM in einigen Browsern zu filtern. Es gibt keine spezifische Lösung dafür.

Es gibt zwei Lösungen, die ich kenne:

  1. Add-Code in Ihre SWF-Datei, die mit dem Klick befasst und öffnet die entsprechende URL
  2. Platz ein ‚Shim‘ unsichtbaren Link oben auf dem Flash Der Klick und die Links werden entsprechend erfasst. Beachten Sie, dass Sie nur 1 davon über Ihre Flash-Datei haben können. Wenn Sie also zwei Links in der Flash-Datei benötigen, funktioniert das nicht.

Beispiel # 2:

<div id="flashContainer"> 
    <a id="shim" href="mylink.aspx">&nbsp;</a> 
    <div id="flash"> 
     <embed class="ads" src="swf/flash_banner.swf" width="315" height="100" wmode="opaque"></embed> 
    </div> 
</div> 
#flashContainer { 
    position: relative; 
} 
#flash { 
    z-index: 5; 
} 
#shim { 
    display: block; 
    position: absolute; 
    top: 0; 
    left: 0; 
    width: 315px; 
    height: 100px; 
    z-index: 10; 
} 

Aktualisiert

Beispiel # 2 ein div verwenden, mit jQuery Einhaken das Click-Ereignis:

<div id="flashContainer"> 
    <div id="shim"></div> 
    <div id="flash"> 
     <embed class="ads" src="swf/flash_banner.swf" width="315" height="100" wmode="opaque"></embed> 
    </div> 
</div> 
#flashContainer { 
    position: relative; 
} 
#flash { 
    z-index: 5; 
} 
#shim { 
    position: absolute; 
    top: 0; 
    left: 0; 
    width: 315px; 
    height: 100px; 
    cursor: hand; cursor: pointer; 
    z-index: 10; 
} 
+0

Warum nicht ein Link anstelle eines div "den Klick richtig erfassen" - sonst stimme ich mit Ihrer Lösung – mikevoermans

+0

Ein Link würde genauso gut funktionieren, nehme ich an, solange es 'display: block' und enthielt eine 'nbsp;' –

+1

@ mikevoermans In der Tat, ich denke, der Link wäre eleganter, da es die Notwendigkeit für js entfernt - Antwort bearbeitet Ich habe es nicht getestet, aber es sollte auch funktionieren. Danke :) –