2012-05-16 16 views
7

स्टार्टर्स के लिए ... मेरे पास पॉपअप या ऐसा कुछ भी करने के लिए उपयोगकर्ताओं को अधीन करने का कोई भयावह इरादा नहीं है। मैं बस किसी उपयोगकर्ता को उस वेबपृष्ठ की ब्राउज़र विंडो का आकार बदलने से रोकना चाहता हूं, जिस पर वे पहले से ही नेविगेट कर चुके हैं (जिसका अर्थ है कि मेरे पास window.open() का उपयोग नहीं करना है/नहीं;)। मैं थोड़ी देर के लिए यह शोध कर रहा हूं और एक सीधा जवाब नहीं लग रहा है।ब्राउज़र विंडो का आकार बदलें

मुझे लगा जैसे मैं की तर्ज पर कुछ के साथ ट्रैक पर था:

$(window).resize(function() { 
    var wWidth = window.width, 
    wHeight = window.height; 
    window.resizeBy(wWidth, wHeight); 
}); 

... कोई लाभ नहीं हुआ। मुझे कल्पना करना है कि यह संभव है। क्या यह? यदि ऐसा है, तो मैं निश्चित रूप से सहायता की सराहना करता हूं।

धन्यवाद

+5

मुझे पूछना चाहिए क्यों? ब्राउजर विंडो को प्रतिबंधित नहीं माना जाता है। यदि अंतिम उपयोगकर्ता इसे किसी अन्य स्क्रीन पर ले जाना चाहता है और इसका आकार बदल नहीं सकता है, तो यह अंतिम उपयोगकर्ता को संभावित समस्याएं उत्पन्न कर सकता है। उदाहरण विभिन्न संकल्पों के साथ दो स्क्रीन है। –

+4

आपको कोर ओएस स्तर की कार्यक्षमता के व्यवहार को बदलने की कोशिश नहीं करना चाहिए (उदाहरण के लिए, खिड़की का आकार बदलने से रोकना)। *कभी*। –

+1

@ जॉन हर्ट्सॉक - शायद वह ब्राउज़र एक्सटेंशन या प्लगइन बना रहा है? –

उत्तर

18

आप पहली बार एक निश्चित आकार निर्धारित कर सकते हैं।

var size = [window.width,window.height]; //public variable 

तो ऐसा करते हैं:

$(window).resize(function(){ 
    window.resizeTo(size[0],size[1]); 
}); 

डेमो: http://jsfiddle.net/DerekL/xeway917/


प्रश्न: इस आकार बदलने की अनंत लूप उत्पन्न नहीं होगा? - उपयोगकर्ता1147171

अच्छा सवाल। इससे आकार बदलने का अनंत लूप नहीं होगा। W3C specification बताता है कि resize ईवेंट केवल तभी प्रेषित किया जाना चाहिए जब दस्तावेज़ दृश्य का आकार बदल दिया गया हो। जब resizeTo फ़ंक्शन दूसरी बार निष्पादित करने का प्रयास करता है, तो विंडो में सटीक समान आयाम होगा जैसा कि यह अभी सेट है, और इस प्रकार ब्राउज़र आकार बदलने की घटना को नहीं चलाएगा क्योंकि आयाम नहीं बदला गया है।

+0

धन्यवाद @ डेरेक। यह निश्चित रूप से मैं जो सोच रहा था उसके आधार पर है। मैंने आपके सुझाव में प्लग किया है और मुझे अभी भी सफलता नहीं मिली है। हालांकि, आपने जो लिखा है उसे देखकर, मैं देख सकता हूं कि यह काम करना चाहिए। यह अभी भी मेरे लिए सहायक है क्योंकि यह पुष्टि करता है कि मुझे कहीं और कुछ गलत करना होगा ... यही कारण है कि मैं इसे 'उत्तर' के रूप में चिह्नित करने जा रहा हूं। धन्यवाद। –

+0

@tchnchn - यह काम करना चाहिए, क्योंकि मैं इसे अपने एक्सटेंशन के पॉपअप में उपयोग कर रहा हूं। ;) –

+1

यह एक बहुत ही परेशान "सुविधा" है। यदि यह काम करता है (और यह नहीं होगा, ओपी दिया गया है) उपयोगकर्ता को शुरू में खिड़की के आकार में लॉक किया गया है, जो उपयोगी हो सकता है, लेकिन शायद नहीं है। – RobG

0

मैं (एक पैनल एक क्रोम विस्तार के द्वारा खोला के लिए) इस आज क्या करने की जरूरत है, लेकिन मैं उपयोगकर्ता खिड़की ऊंचाई बदलने, लेकिन उसमें बदलाव करने खिड़की चौड़ाई

@ डेरेक समाधान मुझे लगभग मिला रोकने के लिए अनुमति देने के लिए की जरूरत वहां मुझे ऊंचाई परिवर्तनों की अनुमति देने के लिए इसे ट्विक करना पड़ा और इसके कारण, एक अंतहीन आकार बदलने वाला लूप संभव था इसलिए मुझे इसे रोकने की भी आवश्यकता थी। यह डेरेक के उत्तर का मेरा संस्करण है जो मेरे लिए काफी अच्छा काम कर रहा है:

var couponWindow = { 
    width: $(window).width(), 
    height: $(window).height(), 
    resizing: false 
}; 
var $w=$(window); 
$w.resize(function() { 
    if ($w.width() != couponWindow.width && !couponWindow.resizing) { 
    couponWindow.resizing = true; 
    window.resizeTo(couponWindow.width, $w.height()); 
    } 
    couponWindow.resizing = false; 
}); 
संबंधित मुद्दे