Bir bağlantıyı tıklattığınızda yeni bir pencere açan bir uygulama var. Bu bir Java uygulaması tutan bir sayfa açar. Sorun şu ki, aynı bağlantıyı tıklamak, Java uygulamasını sıfırlayan sayfayı yeniden yüklemektir. Bunu yakalamanın bir yolu var mı? kabul edilebilir İki çözümler şunlardır:JavaScript window.open sadece pencere zaten mevcut değilse
- çoklu pencere tıklama işleyicisinden açılacak pencere zaten JavaScript acemi olduğu için
Özür açıksa
işleyicisi bağlı kod
function launchApplication(l_url, l_windowName)
{
var l_width = screen.availWidth;
var l_height = screen.availHeight;
var l_params = 'status=1' +
',resizable=1' +
',scrollbars=1' +
',width=' + l_width +
',height=' + l_height +
',left=0' +
',top=0';
winRef = window.open(l_url, l_windowName, l_params);
winRef.moveTo(0,0);
winRef.resizeTo(l_width, l_height);
}
DÜZENLEME geçerli: Cevaplar için
teşekkürler - fonksiyonuyla açılan birden fazla URL olabilir biraz o yüzden önerileri güncellenmiştir.
EDIT2: yeni pencereyi Açılan sayfada böyle bir şey kullanabilirsiniz Check for a URL open on another window
var g_urlarray = [];
Array.prototype.has = function(value) {
var i;
for (var i in this) {
if (i === value) {
return true;
}
}
return false;
};
function launchApplication(l_url, l_windowName)
{
var l_width = screen.availWidth;
var l_height = screen.availHeight;
var winRef;
var l_params = 'status=1' +
',resizable=1' +
',scrollbars=1' +
',width=' + l_width +
',height=' + l_height +
',left=0' +
',top=0';
if (g_urlarray.has(l_url)) {
winRef = g_urlarray[l_url];
}
alert(winRef);
if (winRef == null || winRef.closed) {
winRef = window.open(l_url, l_windowName, l_params);
winRef.moveTo(0,0);
winRef.resizeTo(l_width, l_height);
g_urlarray[l_url] = winRef;
}
}
Evet, ben böyle yapardım - daha düşük ayak izi, daha fazla tekrar, kendi kendine yeten +1 – annakata
+1 harika çalışıyor.Bir şey olsa da, orijinal çek içinde 'winRefs' var ama sonra daha sonra 'winrefs' – Rondel