यह मेरे अंतिम प्रश्न का पालन करता है Open a window if the window does not already exist अनिवार्य रूप से, अब मैं एक पृष्ठ द्वारा खोले गए सभी विंडो संदर्भों की एक सूची रख रहा हूं, और केवल उन्हें खोले जाने की इजाजत देता है अगर वे पहले से खुले नहीं हैं। फिर एक संभावित समस्या ने मुझे मारा - उपयोगकर्ता के लिए मूल विंडो बंद करना और फिर इसे खोलना संभव है, इस प्रकार विंडो संदर्भों की सूची खोना।मैं किसी अन्य विंडो में एक खुले यूआरएल की जांच कैसे कर सकता हूं?
क्या किसी ब्राउज़र में खुली खिड़कियों के माध्यम से लूप करना संभव है, किसी विशेष यूआरएल की जांच करना?
संपादित करें: यहां बहुत उपयोगी टिप्पणियों के बाद (और दूसरे प्रश्न पर), एप्लिकेशन लॉन्चर के लिए अंतिम कोड यहां दिया गया है। अनिवार्य रूप से, यह उपयुक्त नाम के साथ खुली खिड़की का स्थान प्राप्त करने का प्रयास करता है। अगर यह अपवाद (गोपनीयता समस्या के कारण) का कारण बनता है, तो आवेदन को लोड करने का निर्णय लिया जाता है। यदि यह "लगभग: खाली" है, तो यह एक नई विंडो है। यह फ़ायरफ़ॉक्स, आईई 7 और Google क्रोम पर काम करता है। यह गंदा लगता है ...
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];
}
if (winRef == null || winRef.closed) {
winRef = window.open('', l_windowName, l_params);
var l_openNew = 0;
try {
if (winRef.location == 'about:blank') {
l_openNew = 1;
}
}
catch (e) {
l_openNew = 0;
}
if (l_openNew === 1)
{
winRef.location = l_url;
winRef.moveTo(0,0);
winRef.resizeTo(l_width, l_height);
}
g_urlarray[l_url] = winRef;
}
}
से पहले काम करने का एक बहुत अच्छा तरीका है यह मेरे लिए एफएफ, क्रोम, ओपेरा या आईई में काम नहीं कर रहा है - क्या यह सिर्फ मुझे है? – annakata
मैं आपको नहीं बता सका। यह आईई में मेरे लिए काम किया। – adam0101