jQueryクリックイベントはHREFにリダイレクトされません
-
30-09-2019 - |
質問
ボタンが付いた埋め込まれたフラッシュムービーを備えたHTMLページがあります。フラッシュのこのボタンは、lnkemailのクリックイベントを呼び出します。実際に新しいページに移動するのを止めることになっていますが、event.preventdefault();そして、イベントハンドラーからFalseを返すことは私のために働いていないようです。誰かが洞察を提供できますか?
以下の例はChromeで動作していますが、IE 7およびFFでは失敗します。これらのブラウザでは、ボディとしてオブジェクト[オブジェクト]を使用して空白のページにリダイレクトし、FFには、フラッシュムービー内から実行するJavaScriptコードにURLが設定されています。 (つまり: "JavaScript:jquery( '#lnkemail')。クリック();")
以下は、Flash ActionScriptのコードです。
cmdDemo.addEventListener(MouseEvent.CLICK, clickHandler);
function clickHandler(event:MouseEvent):void {
navigateToURL(
new URLRequest(
"javascript:jQuery('#lnkEmail').click();"
),
"_self"
);
}
含まれるHTMLページには、次のスクリプトと要素があります。
<script type="text/javascript">
$(function(){
$.nyroModalSettings({
debug: true
});
$('#lnkEmail').click(function(event) {
event.preventDefault();
$.nyroModalManual({
url: 'demoRequest.aspx?Type=4'
});
return false;
});
});
</script>
後で同じファイルで:
<div id="box_stage_home">
<script type="text/javascript">
$(document).ready(function() {
$('#HomeAnimation').flash({
swf: 'Flash/index_page.swf',
height: 288,
width: 686,
wmode: 'transparent'
});
});
</script>
<div id="HomeAnimation"><!--IE 6.0--></div>
<a href="emailSend.aspx?Type=4" id="lnkEmail"> </a>
</div>
解決 2
これを行うための適切な方法(Corneliuに感謝)を見つけたので、参照のためにここに投稿したと思いました。 HTMLファイル:
<script type="text/javascript">
function viewDemo() {
$.nyroModalManual({
url: 'emailSend.aspx?Type=4'
});
}
</script>
フラッシュファイル:
import flash.system.Security;
cmdDemo.addEventListener(MouseEvent.CLICK, clickHandler);
function clickHandler(event:MouseEvent):void {
flash.system.Security.allowDomain("business.com");
ExternalInterface.call("viewDemo");
}
他のヒント
を見てください navigateToURL
ドキュメンテーション: http://livedocs.adobe.com/flash/9.0/actionscriptlangrefv3/flash/net/package.html#navigateTourl%28%29. 。使用するつもりはありません javascript:
リンク。
あなたが望むことをするために、使用してください ExternalInterface.call()
.