أفضل ممارسات JavaScript
لا تعمل واجهة برمجة تطبيقات JavaScript للخرائط إلا مع ECMAScript وW3C DOM قياسيين محددة. وهذا يعني أن تعديل سلوك واجهة برمجة التطبيقات المضمنة الفئات والكائنات التي يوفرها المتصفح إلى جعل API JavaScript API غير وظيفي. قد تتعارض مكتبات أخرى أحيانًا مع JavaScript للخرائط واجهة برمجة التطبيقات عن طريق تغيير سلوك المتصفح بحيث لم يعد معيارًا بيئة ECMAScript. ولا تتوافق واجهة برمجة تطبيقات JavaScript للخرائط مع تلك المكتبات.
المكتبات المعروف عنها غير المتوافقة مع واجهة برمجة تطبيقات JavaScript للخرائط:
- النموذج الأوّلي: يتجاوز
Array.from()
وElement.prototype.remove()
بطرق غير عادية. - MooTools (الإصدارات القديمة): تتجاوز
Array.from()
بطريقة غير عادية. - DateJS (الإصدارات القديمة): يتجاوز
Date.now()
بطريقة غير عادية.
أحيانًا يمكن تعديل المكتبات غير المتوافقة لإزالة الإلغاء غير العادي.
أفضل ممارسات خدمة مقارنة الأسعار (CSS)
عند إضافة خريطة أو تخصيصها باستخدام واجهة برمجة تطبيقات JavaScript للخرائط، فإن بعض الأنماط التي تطبقها على صفحة الويب تلغي أنماط الخريطة وتتسبّب في حدوث تعارضات في CSS. إذا كنت تستخدم إطار عمل CSS أو مكون JavaScript للنمط، قد يضيف هذا تتعارض CSS الإضافية مع أنماط الخريطة.
غالبًا ما تستخدم أطر عمل CSS ومكونات نمط JavaScript إعادة تعيين CSS
أداة معادلة الصوت لمعالجة اختلافات العرض بين المتصفحات. أطر العمل غالبًا
استخدِم العنصر box-sizing
لتغيير هوامش صفحة الويب وحدودها.
عناصر. وعادةً ما يتضمن ذلك تغيير سلوك المتصفح الافتراضي من استخدام
content-box
إلى border-box
ويمكن أن يؤدي هذا النوع من إعادة ضبط CSS إلى حدوث تعارض بين CSS وMaps JavaScript API. لأنّ واجهة برمجة التطبيقات لا تتيح إجراء تغييرات على ورقة أنماط وكيل المستخدم معلومات إضافية يمكن أن تحدث تعارضات في CSS إذا كان إطار العمل أو المكون يشير إلى فئات CSS أو عناصر DOM لواجهة برمجة تطبيقات JavaScript للخرائط.
لتجنُّب هذا التعارض، نقترح عليك عدّة اقتراحات.
الدقة
يتم تطبيق CSS المضمّنة والمرتبطة على خريطتك قبل أنماط "خرائط Google". في حال حذف يتم تحديد جميع أنماط صفحتك في CSS المضمنة أو المرتبطة، اتبع قواعد المواصفات لضمان تطبيق الأنماط الصحيحة على الخريطة.
يمكن استبدال عناصر CSS الشائعة، مثل img
وbutton
وa
من خلال السمة
أنماط صفحتك. وأحد السيناريوهات الأكثر شيوعًا هو الحالات التي يكون فيها max-width
يتم تعيين سمة العنصر img
على 100 بالمائة. ويمكن أن يؤدي ذلك إلى التشوّه
أو مكونات خريطة مخفية، خاصةً إذا كنت تستخدم
InfoWindow:
لحل هذه المشكلة، يمكنك تعديل العنصر img
لخريطتك بحيث
تم ضبط السمة max-width
على none
. على سبيل المثال:
#map img
{
max-width : none;
}
أسماء الصفوف
عدم الإشارة إلى أسماء الفئات وعناصر DOM الداخلية لخرائط JavaScript واجهة برمجة التطبيقات. هذا الإجراء غير متاح ويمكن أن يؤدي إلى حدوث تغييرات قد تؤدي إلى أعطال في موقعك الإلكتروني. بدون إشعار. نقترح بدلاً من ذلك إنشاء فئات CSS الخاصة بك حاويات لخريطتك.
إذا كان إطار عمل CSS أو مكوِّن JavaScript يستخدم هذا النوع من المراجع، فإن توصية تجاوز حجم الصندوق هذا الحل.
إلغاء حجم المربع في CSS
توفر عمليات إلغاء حجم المربع في CSS حلاً بديلاً محتملاً لتصميم الخرائط
النزاعات. يمكن أن يكون ذلك مفيدًا بشكل خاص إذا كنت تستخدم إطار عمل CSS أو
مكوِّن تصميم JavaScript. على سبيل المثال، إذا تم ضبط box-sizing
على
border-box
، يمكنك تجربة ما يلي:
- يمكنك إنشاء إلغاء
box-sizing
يؤدي إلى ضبط العنصر<html>
علىborder-box
. - يمكنك استخدام
box-sizing: inherit
لجميع العناصر باستثناء الخريطة. - أنشِئ حاوية خريطة مخصّصة تُعيد ضبط العنصر
box-sizing
إلىinitial
.
مثال على لغة CSS:
html {
box-sizing: border-box;
}
*,
*::before,
*::after {
box-sizing: inherit;
}
.container-map {
box-sizing: initial;
}