Как предотвратить взаимодействие между 2 jquery диалогами
Мне бы хотелось, чтобы одновременно открывались 2 диалоговых окна jquery и независимо перемещаться по их содержимому. Моя проблема в том, что когда я щелкаю где-нибудь в одном диалоге, он сбрасывает содержимое в другом. Это происходит только в Chrome и не происходит ни в IE, ни в Firefox.
Контент представляет собой Flash-файл с несколькими кадрами. Показываемый кадр можно изменить, нажав кнопку, которая была добавлена как часть файла Flash. Все это было сделано с помощью исполняемых файлов SWFTOOLS. "Сброс" означает возврат к начальному кадру.
Когда файлы Flash отображаются непосредственно в HTML без диалогов, сброс в Chrome не происходит. Как таковая проблема возникает только при использовании Chrome для просмотра содержимого в диалоговом окне jquery.
Как я могу изменить свой сценарий, чтобы в Chrome не происходило никакого взаимодействия? В противном случае, на каких терминах я должен искать, чтобы точно определить, что мне нужно делать?
Мой код PHP и Javascript показан ниже.
<!DOCTYPE HTML>
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/themes/redmond/jquery-ui.css" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script>
<?php
$file_details=array(
array('filename'=>'Cookie law.swf','width'=>695,'height'=>842),
array('filename'=>'cookies_guidance_v3.swf','width'=>595,'height'=>842),
);
foreach($file_details as $id=>$file_detail){
extract($file_detail);
openDialog($id,$filename,$width,$height);
}
?>
<?php
function openDialog($id,$filename,$width,$height){
$url_dirname='http://'.$_SERVER['HTTP_HOST'].dirname($_SERVER['REQUEST_URI']);
$url=$url_dirname.'/'.$filename;
?>
<!-- Adds the link -->
<a href=# id='opener<?php echo $id ?>' >View <?php echo $filename ?></a><br /><br />
<!-- Adds content to the dialog box which appears when the link is clicked -->
<div id='dialog<?php echo $id ?>' style='border:0px solid blue;display: none;'>
<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' style='border:0px solid green;' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0' width='<?php echo $width ?>' height='<?php echo $height ?>' align='' >
<param name='movie' value='<?php echo $url ?>' />
<param name='quality' value='high' />
<param name='bgcolor' value='#FFFFFF' />
<param name='wmode' value='opaque'>
<embed src='<?php echo $url ?>' style='border:0px solid green;' quality='high' bgcolor='#FFFFFF' width='<?php echo $width ?>' height='<?php echo $height ?>' align='left' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' wmode='opaque'/>
</object>
</div>
<!-- Acts when the link is clicked -->
<script>
$(function() {
$("#dialog<?php echo $id ?>").dialog({
autoOpen: false,
show: {
effect: 'fade',
duration: 300,
},
hide: {
effect: 'fade',
duration: 300,
},
beforeClose:function(){
$("#opener<?php echo $id ?>").attr('src','./icons/view2.png');
},
});
$("#opener<?php echo $id ?>").click(function() {
$("#dialog<?php echo $id ?>").dialog({width:'auto'});
$("#dialog<?php echo $id ?>").dialog("open");
$("#dialog<?php echo $id ?>").dialog("option", "title", 'Viewer'); //set here to prevent annoying tooltip if set in div
$(this).attr('src','./icons/eye.png');
});
});
</script>
<?php
}
?>
Ниже показан результирующий HTML.
<!DOCTYPE HTML>
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/themes/redmond/jquery-ui.css" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.2/jquery-ui.min.js"></script>
<!-- Adds the link -->
<a href=# id='opener0' >View Cookie law.swf</a><br /><br />
<!-- Adds content to the dialog box which appears when the link is clicked -->
<div id='dialog0' style='border:0px solid blue;display: none;'>
<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' style='border:0px solid green;' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0' width='695' height='842' align='' >
<param name='movie' value='http://vhosts/work/Cookie law.swf' />
<param name='quality' value='high' />
<param name='bgcolor' value='#FFFFFF' />
<param name='wmode' value='opaque'>
<embed src='http://vhosts/work/Cookie law.swf' style='border:0px solid green;' quality='high' bgcolor='#FFFFFF' width='695' height='842' align='left' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' wmode='opaque'/>
</object>
</div>
<!-- Acts when the link is clicked -->
<script>
$(function() {
$("#dialog0").dialog({
autoOpen: false,
show: {
effect: 'fade',
duration: 300,
},
hide: {
effect: 'fade',
duration: 300,
},
beforeClose:function(){
$("#opener0").attr('src','./icons/view2.png');
},
});
$("#opener0").click(function() {
$("#dialog0").dialog({width:'auto'});
$("#dialog0").dialog("open");
$("#dialog0").dialog("option", "title", 'Viewer'); //set here to prevent annoying tooltip if set in div
$(this).attr('src','./icons/eye.png');
});
});
</script>
<!-- Adds the link -->
<a href=# id='opener1' >View cookies_guidance_v3.swf</a><br /><br />
<!-- Adds content to the dialog box which appears when the link is clicked -->
<div id='dialog1' style='border:0px solid blue;display: none;'>
<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000' style='border:0px solid green;' codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0' width='595' height='842' align='' >
<param name='movie' value='http://vhosts/work/cookies_guidance_v3.swf' />
<param name='quality' value='high' />
<param name='bgcolor' value='#FFFFFF' />
<param name='wmode' value='opaque'>
<embed src='http://vhosts/work/cookies_guidance_v3.swf' style='border:0px solid green;' quality='high' bgcolor='#FFFFFF' width='595' height='842' align='left' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer' wmode='opaque'/>
</object>
</div>
<!-- Acts when the link is clicked -->
<script>
$(function() {
$("#dialog1").dialog({
autoOpen: false,
show: {
effect: 'fade',
duration: 300,
},
hide: {
effect: 'fade',
duration: 300,
},
beforeClose:function(){
$("#opener1").attr('src','./icons/view2.png');
},
});
$("#opener1").click(function() {
$("#dialog1").dialog({width:'auto'});
$("#dialog1").dialog("open");
$("#dialog1").dialog("option", "title", 'Viewer'); //set here to prevent annoying tooltip if set in div
$(this).attr('src','./icons/eye.png');
});
});
</script>
Обновить
Реализация диалоговых окон, совместимых с браузером, с использованием jQuery (см. Обновление 3 в этой ссылке) показывает решение этой проблемы.