flash-объект некорректно внедряется в IE

#javascript #jquery #html #flash

#javascript #jquery #HTML #flash

Вопрос:

Я не загрузил этот небольшой пример для jquery http://plugins .jquery.com/project/WebcamQRCode это плагин для веб-страницы, который отображает flash Player для захвата qr-кода через веб-камеру. Он показывает flash Player в Firefox и Chrome, но не показывает его в IE. У меня есть flash Player в IE, потому что я попробовал проект на этой веб-странице http://blog.jactionscripters.com/2009/05/23/introduction-of-qr-code-reader-library/ и он отображает qr-код.

Человек сказал мне проверить, был ли он внедрен с использованием swfobject, и я проверил файл .js проекта, и он внедряет его как swfobject, кто-нибудь может помочь мне определить, в чем может быть проблема?

это часть кода в jqery.webcamqrcode.js

   $.WebcamQRCode.start = function( $this ){
        var _flash = $('<object></object>');
        var _messageNoFlash = $('<p></p>');
        var __options = $this.data( 'webcam_qrcode_options' );

        // Set message if no flash
        _messageNoFlash.text( __options.messageNoFlash );

        // Set flash object information
        _flash.attr( 'type', "application/x-shockwave-flash" );
        _flash.attr( 'data', __options.path   "swf/webcamqrcode.swf?ID="   $this.attr( '_webcam_qrcode_id' ) );
        _flash.attr( 'width', "100%" );
        _flash.attr( 'height', "100%" );
        _flash.append( _messageNoFlash );

        $this.html( _flash );
    }
  

Спасибо!

Ответ №1:

IE нуждается в <param name="movie" value="blah.swf"> , вы должны добавить это в _flash

Вы могли бы даже добавить его <embed> версию.

Смотрите, как структурировать Flash-объект, совместимый с несколькими браузерами, здесь: http://www.alistapart.com/articles/flashsatay

Или, что проще, вы могли бы использовать SWFObject: http://code.google.com/p/swfobject /

Комментарии:

1. Я включил параметр, но он не сработал, он по-прежнему не отображает его в IE, я проверяю swfobject!

2. Спасибо, я включил параметр etc непосредственно в html вместо .js, как показано в примере кода, который я опубликовал, и теперь он отображает его в IE. Спасибо!

Ответ №2:

Используйте SWFObject для встраивания Flash. Нет абсолютно никаких причин не делать этого. Вам даже не нужно самостоятельно размещать скрипт, Google сделает это за вас: http://code.google.com/p/swfobject/wiki/hosted_library

Пример:

 <html>
  <head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/swfobject/2.2/swfobject.js"></script>
    <script type="text/javascript">
    var flashvars = {"ID": WEBCAM_QRCODE_ID}; // fill in this value
    var params = {};
    var attributes = {};
    swfobject.embedSWF("path/to/webcamqrcode.swf", "flash", "100%", "100%", "9.0.0", null, flashvars, params, attributes);
    </script>
  </head>
  <body>
    <div id="flash"></div>
  </body>
</html>