حدث نقر jQuery لا يتم إعادة توجيهه إلى HREF
-
30-09-2019 - |
سؤال
لقد حصلت على صفحة HTML مع فيلم فلاش مضمن ، والذي يحتوي على زر. يستدعي هذا الزر في Flash حدث Click's Lnkemail. من المفترض أن تتوقف من الانتقال فعليًا إلى صفحة جديدة ، ولكن Event.PreventDefault () ؛ ويبدو أن عودة كاذبة من معالج الأحداث لا يبدو أنه يعمل من أجلي. هل يمكن لأي شخص تقديم نظرة ثاقبة؟
المثال أدناه يعمل في Chrome ، لكنه يفشل في IE 7 و FF. في تلك المتصفحات ، تقوم بإعادة توجيه إلى صفحة فارغة مع كائن [كائن] حيث أن الجسم وفي FF لديه عنوان URL على رمز JavaScript الذي قمت بتنفيذه من داخل فيلم Flash. (أي: "JavaScript: jQuery ('#lnkemail'). click () ؛")
فيما يلي الرمز في 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/actionscriptlangref3/flash/net/package.html#navigatetourl٪28٪29. لا يعتزم استخدامه مع javascript:
الروابط.
لفعل ما تريد ، استخدم ExternalInterface.call()
.