मेरे पास एक ऐसा एप्लिकेशन है जो किसी लिंक पर क्लिक करने पर एक नई विंडो खोलता है। यह एक ऐसे पृष्ठ को जन्म देता है जिसमें जावा एप्लेट होता है। मेरी समस्या यह है कि एक ही लिंक पर क्लिक करने से पेज को फिर से लोड किया जाता है, जो जावा एप्लिकेशन को रीसेट करता है। क्या इसे फंसाने का कोई तरीका है? दो समाधान है कि स्वीकार्य होगा हैं:जावास्क्रिप्ट विंडो.ऑपेन केवल तभी यदि विंडो पहले से मौजूद नहीं है
- अनुमति दें एकाधिक विंडो क्लिक हैंडलर से खोले जाने के लिए
- अनुवर्ती अनुरोधों पर ध्यान न दें, तो खिड़की पहले से ही खुला एक जावास्क्रिप्ट नौसिखिया होने के लिए
क्षमा याचना है - यह है वास्तव में मेरी मुख्य बात नहीं है।
कोड हैंडलर से जुड़ी
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);
}
संपादित है:
उत्तर के लिए धन्यवाद - मैं सुझाव संशोधित थोड़ा ताकि मैं एक से अधिक URL समारोह के माध्यम से खोला हो सकता था।
EDIT2: वहाँ 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;
}
}
हां, इस तरह मैं इसे करूँगा - निचला पदचिह्न, अधिक पुन: उपयोग, स्वयं निहित +1 – annakata
+1 बहुत अच्छा काम करता है।एक बात यह है कि, आपके पास मूल चेक में 'winRefs' है लेकिन फिर आप इसे' winrefs' – Rondel