したがって、チケット テーブルを持つ親タブと、実際のチケットを持つ子タブがあります。ただし、window.open() イベントの代わりに target="_blank" クリックを使用しているため、これは真の親子関係ではありません。
修正はちょっと面倒ですが、うまくいきます。変更は「親」タブに追加するだけで済みます。最初に、Javascript で gbRefreshStale グローバル ブール値をページに追加し、次のようにその値を 0 に設定します。
var gbRefreshStale = 0;
次に、target="_blank" をクリックするたびに、次のように jQuery でインターセプトします。
$('A[target=_blank]').click(function(){
setTimeout('gbRefreshStale=1;clearTimeout();',500);
return true;
});
次に、3 番目に、ページのヘッダーにこの mouseenter イベントが必要になります。
$('#header').mouseenter(function(){
// assuming you called your banner/header as #header
if (gbRefreshStale) {
gbRefreshStale = 0;
location.href = location.href;
}
});
ここでの効果は、チケットの新しいタブが開かれることですが、誰かがそのタブを閉じてヘッダーにマウスを移動すると (子タブを閉じたばかりなので、おそらくそうするでしょう)、親タブが更新されます。これは、複数のタブを開いたり閉じたりした場合にも機能し、このシステムにより、親タブがループで更新されるのを防ぎます。タイムアウトが必要なのは、そうしないと、そのタブが開く前に誰かのマウスが親の #header セクションを横切る可能性があるためです。