2015-12-21 3 views
0

Я поставил абсолютно позиционированный DIV на страницу, содержащую объект вспышки. У div есть высокий индекс z и перехватывает событие click. Цель состоит в том, чтобы получить щелчок в div при щелчке по объекту вспышки.DIV поверх флеш-объекта

<html> 
<head> 
    $(document).ready(function() { 
     var htmlHeight = $(html).height() + 'px'; 
     var htmlWidth = $(html).width() + 'px'; 
     var fgDiv = $('body').append('<div>'); 
      fgDiv.css("position": "absolute"); 
      fgDiv.css("top", 0); 
      fgDiv.css("left", 0); 
      fgDiv.css("width", htmlWidth); 
      fgDiv.css("height", htmlHeight); 
      fgDiv.css("z-index", 99999); 
      fgDiv.on('click', function() { 
       alert("Hello, World!"); 
      }); 
    }); 
</head> 
<body> 
    <div>Hello, World!</div> 
    <div><object width="400" height="50" data="img/car.swf"></object></div> 
</body> 
</html> 

Это решение отлично работает в MS Windows и Linux Chrome, но не на Windows/Linux Firefox.

Что может быть причиной?

+0

Flash Player отличается от браузера, так что вы думаете о ОС? Попробуйте использовать 'opaque' или' transparent' 'wmode' для вашего объекта SWF ... – akmozo

+0

Оказалось, что в Firefox в Windows это тоже не работает. Итак, «проблема» в Firefox. Объект swf не мой. – rlib

+0

'wmode' является собственностью' ' ... – akmozo

ответ

0

Вы можете создать этот div, чтобы покрыть только объект SWF, не покрывая все содержимое вашей HTML-страницы, и не забудьте установить wmode вашего SWF-объекта.

HTML:

<div id='swf_container' style='position: relative;'> 
    <object id='swf_object' width='400' height='50' data='swf.swf' wmode='opaque'></object> 
</div> 

JavaScript:

$(document).ready(function(){ 

    var height = $('#swf_object').height() + 'px', 
     width = $('#swf_object').width() + 'px'; 

    var div = $('<div style="position: absolute; top:0; left:0; width:'+width+'; height: '+height+'; z-index: 99999;"></div>') 
     .on('click', function(){ 
      alert('Hello, World!'); 
     }); 

    $('#swf_container').append(div); 

}); 

Я не Linux прямо сейчас, чтобы проверить этот код, но он работает нормально в Windows (Firefox, Chrome) ,

Надеюсь, что это поможет.

Смежные вопросы