سؤال

أنا أستخدم نافذة JavaScript. Open لفتح نافذة متصفح على مستخدم ، انقر فوق عرض وارتفاع محدد (760 × 581) ، وهذا يعمل بشكل صحيح على Internet Explorer و Safari و Firefox ، لكن Google Chrome يعطيني المشكلات. في المتصفحات الأخرى ، يتم استخدام الارتفاع بشكل صحيح على أنه ارتفاع المحتوى ، ولكن في Google Chrome ، فإنه يجعل نافذة المتصفح الفعلية 581 بكسل طولها بدلاً من المحتوى. هل هناك طريقة لإصلاح هذا؟

<a href="http://domain.com/example.php" onclick="window.open('http://domain.com/example.php', '', 'width=760, height=581, top=15, left=15, toolbar=0, menubar=0, scrollbars=1, resizable=1, copyhistory=0, location=0, directories=0, status=1, titlebar=1, personalbar=0');return false">click here</a>
هل كانت مفيدة؟

المحلول

لذلك عابثت بالأشياء أكثر واكتشفت أن بعض المتصفحات دعمت العقار innerHeight إلى عن على window.open وعملت ما يلي كما هو متوقع في جميع المتصفحات مع ارتفاع المحتوى المطلوب عند 775 بكسل مع إضافة 50 بكسل إلى الكروم فقط:

window.open($(this).attr('href'), 'videoplayer',
   'width=1242, height=775, innerHeight=825, location=no, menubar=no, status=no, titlebar=no, scrollbars=no'
);

لقد اختبرت هذا في Chrome 6.0.472.63 و Firefox 3.6 و 3 و 2 و IE 8 & 7 و Opera 10.62. عندما كنت أستخدم فقط height سيكون Chrome حوالي 50 بكسل قصير جدًا ولديه أشرطة التمرير ولكن جميع المتصفحات أعلاه كانت جيدة. مع المضافة innerHeight تم تعيين الممتلكات على 50 بكسل أكثر مما أريده في Chrome وكذلك جميع المتصفحات الأخرى.

تحديث: يبدو أن هذا يخلق مشكلة في Safari مع ارتفاع 50 بكسل من الارتفاع. سوف يبحث في طرق للتغلب على ذلك.

نصائح أخرى

لا تزال المشكلة مستمرة (Chrome17+) ، إذا قمت بالاتصال بـ Window.Open مع الارتفاع = 600 ، فإن نافذة النتيجة الداخلية هي 564 بكسل ، وهو قصير 36 بكسل (بالنسبة لشريط العنوان على Windows). يعتمد ارتفاع شريط العنوان على النظام الأساسي لذلك هذا مزعج للغاية.

تمت إضافة الحل الخاص بي فقط الفرق إلى الارتفاع.

حسنًا ، من ما تمكنت من العثور عليه بعد البحث عن Google لأكثر من ساعة هو أن هذا هو ما يفعله Google Chrome ذلك وعلينا فقط استخدام حل بديل. ما أفعله الآن ما لم يتم العثور على شيء أفضل هو وضع JS التالي على الصفحة التي أفتحها:

if (navigator.appVersion.indexOf('Chrome')>0) {
    window.resizeBy(0, 581 - window.innerHeight);
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top