私のウェブサイトの多くのユーザーが、jquery ui ダイアログに関する問題を報告しています。一部の IE ユーザーには、スクリプトの実行に時間がかかるというメッセージが表示されます。また、一部の Opera ユーザーは、Web サイトの読み込み時にダイアログがすべてポップアップし、すべてが遅くなるか、まったく閉じることができないと言っています。ここに私が使用するコードがあります:
<?php foreach ($buffs as $own_buff): ?>
<div style="display:none">
<div id="popup-pos-link-<?php echo $own_buff['id']?>" style="position: relative">
<img src="<?php echo $html->url("img/Sektor" . $own_buff['sector'] . ".png"); ?>" title="some text" alt="some text" />
<img id="poscross-<?php echo $own_buff['id']?>" src="<?php echo $html->url('img/cross.png'); ?>" style="width: 20px; height: 20px; position: absolute;left: <?php echo $own_buff['xcoord']; ?>px; top: <?php echo $own_buff['ycoord']; ?>px;" />
</div>
</div>
<?php endforeach; ?>
これは、ダイアログを開くリンクのコードです。
<?php foreach ($buffs as $own_buff): ?>
<a href="#popup-pos-link-<?php echo $own_buff['id']?>" id="pos-link-<?php echo $own_buff['id']?>">
<img src="<?php echo $html->url('img/lupe.gif')?>" title="<?php echo __('view_map'); ?>" alt="<?php echo __('view_map'); ?>" style="width:16px;height:16px;" />
</a>
<?php endforeach; ?>
これは、ダイアログを作成し、リンク上でそれらのクリック イベントを作成するための JavaScript コードです。
<script type="text/javascript">
$(document).ready(function() {
$('[id^=popup-pos-link]').dialog({
autoOpen: false,
modal: true,
width: 'auto'
});
$('[id^=pos-link]').click(function(e) {
$('#popup-' + $(this).attr('id')).dialog("open");
e.preventDefault();
});
});
</script>
少なくとも自分でエラーを出すことはできませんでした。しかし、問題を報告したユーザーは Opera または Internet-Explorer を使用しており、そのほとんどは 64 ビットで Windows または ubuntu を使用していました。
そのコードでどのような問題が発生する可能性があるか知っている人はいますか?
このコードが ajax を介して既存の div-container に一度ロードされることを知っておくことも重要かもしれません。
よろしくアンディ