// Pops a window relative to the current window position
function popup(url, winName, xOffset, yOffset) {
var x = (window.screenX || window.screenLeft || 0) + (xOffset || 0);
var y = (window.screenY || window.screenTop || 0) + (yOffset || 0);
return window.open(url, winName, 'top=' +y+ ',left=' +x))
}
तो वह ऐसा कॉल करें और यह वर्तमान विंडो
popup('http://www.google.com', 'my-win');
के शीर्ष पर खोलने या कर देगा यह थोड़ा ऑफसेट
popup('http://www.google.com', 'my-win', 30, 30);
मुद्दा यह है कि खिड़की है। स्क्रीनएक्स/स्क्रीन लेफ्ट आपको मॉनिटर न केवल पूरे डेस्कटॉप के संबंध में स्थिति देता है।
window.screen.left आदर्श उम्मीदवार आप जानकारी की आवश्यकता देने के लिए किया जाएगा। समस्या यह है कि जब पेज लोड होता है तो यह सेट होता है और उपयोगकर्ता विंडो को अन्य मॉनीटर पर ले जा सकता है।
और अधिक शोध
इस समस्या का एक अंतिम समाधान (सिर्फ वर्तमान विंडो की स्थिति से offsetting परे) स्क्रीन उस खिड़की में है। चूंकि स्क्रीन वस्तु के रूप में अपडेट नहीं करता के आयामों को जानने की आवश्यकता है उपयोगकर्ता चारों ओर एक खिड़की चलाता है, हमें वर्तमान स्क्रीन रिज़ॉल्यूशन का पता लगाने का अपना तरीका तैयार करने की आवश्यकता है।
function openAtTopLeftOfSameMonitor(url, winName) {
getScreenProps(function(scr){
window.open(url, winName, 'top=0,left=' + scr.left);
})
}
स्रोत
2011-01-24 20:46:10
नहीं एक मेरे लिए इन 'समाधान' काम का एक एक। क्या आपको कोई रास्ता मिला। – oma
@oma मैंने एक समाधान प्रदान किया है जो मेरे लिए काम करता है, इस पोस्ट में उत्तर दिया गया है: http://stackoverflow.com/questions/6911138/position-javascript-window-open-centered-on-secondary-screen/14269826# 1426 9 826 –
आपको इसे इसके बजाय यहां पोस्ट करना चाहिए था। दूसरा एक डुप्लिक है और इस धागे में अधिक प्रासंगिक संदर्भ है। – oma