1

Chrome と Firefox ではハイパーリンクが表示されません (Firefox では、クリックするとリンクが開きますが、ポインターはクリック可能に表示されません)。私はこれを試しています:

<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>​

CSSで試した.ads{cursor : pointer;}

4

1 に答える 1

2

問題は、Flash がクリック イベントをトラップし、一部のブラウザーで DOM を介してフィルタリングしないことです。これに対する特定の修正はありません。

私が知っている2つの回避策があります:

  1. クリックを処理して適切な URL を開くコードを swf ファイルに追加します。
  2. クリックとリンクを適切にキャプチャする「シム」非表示リンクをフラッシュの上に配置します。フラッシュ ファイルにはこれらのうちの 1 つしか配置できないことに注意してください。したがって、フラッシュ ファイルに 2 つのリンクが必要な場合は機能しません。

#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;
}

更新しました

#2 div を使用し、jQuery でクリック イベントをフックする例:

<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;
}
$("#shim").click(function() {
    window.location.assign("mylink.aspx");
});
于 2012-04-11T13:48:45.087 に答える