سؤال

لقد حصلت على صفحة 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">&nbsp;</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().

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top