تم طرح سؤال واحد:
نسخة الكود كما يلي:
<script language = "javaScript">
<script type = "text/javaScript">
<script>
ما هو الفرق بين استخدام هذه العلامات الثلاث؟
على الرغم من أنني كنت أستخدمها ، إلا أنني لم أحسب ذلك بعناية. هنا سأشرح ذلك بالتفصيل.
تحقق من بعض المعلومات ، ويرجع ذلك أساسًا إلى مشكلات دعم المتصفح. يمكن استخدام كل من خصائص النوع واللغة لتحديد نوع البرامج النصية في علامة <script>. تم انتقاد سمة اللغة في معايير HTML و XHTML ، والتي تدافع عن استخدام سمات النوع. لسوء الحظ ، تختلف قيم هاتين الخصائص.
قد ترى أحيانًا قيمة اللغة VBScript (Text/VBScript للنوع) ، مما يشير إلى أن رمز البرنامج النصي الموجود مكتوبة في البرنامج النصي Visual Basic من Microsoft.
باستخدام JavaScript ، يمكنك أيضًا استخدام قيمة "JavaScript 1.1" من اللغة ، مما يشير إلى أنه لا يمكن معالجة عبارات البرنامج النصي المضمنة إلا بواسطة Netscape 3.0 أو أحدث. Netscape 2.0 يدعم JavaScript 1.0 فقط ولا يمكنه التعامل مع البرامج النصية التي تحمل علامة "JavaScript 1.1".
للتأكد من أن برامج البرمجة النصية يمكن أن تنفذ بشكل طبيعي ، ما لم تستخدم عمداً آليات تشفير VBSCript و Script التي يتم دعمها فقط من قبل IE ، يجب ضبط سمة "النوع" لعلامة البرنامج النصي على "JavaScript" ، ولا يتم تعيين السمة "اللغوية" التي تم التخلي عنها.
يدعم كل متصفح سمات "النوع" و "اللغة" نفسها ، لكن التعرف على نوع لغة البرنامج النصي ودعمه يختلفان عن الإعدادات:
عند وجود "النوع" و "اللغة" في نفس الوقت ، يتعرف جميع المتصفحات بشكل تفضيلي على أنواع البرامج النصية داخل سمة "type" ؛
من بينها ، يدعم متصفح IE في الواقع JScript و VBScript Script Language وتشفير ترميز البرنامج النصي ؛
تتمتع أوبرا Firefox Chrome Safari بتسامح غير متسق لتحديد محدد لقيم السمة "النوع". مقارنة مع Chrome Safari ، فإن التحقق من صحة قيم السمات أكثر استرخاء ، و Firefox هو الأكثر صرامة ؛
في مقارنة التسامح مع التعرف على قيمة سمة "اللغة" ، لا يزال Chrome Safari هو الأكثر أهمية بين جميع المتصفحات ، أي هو الأكثر صرامة ، و Firefox هو نفس الأوبرا ؛
في المقارنة بين اللغة ، لا يدعم IE فقط jscript.encoder و vbscript.encoder إعدادات نوع Firefox Chrome Safari ، وفي الأوبرا ، يتم تثبيت قيمة الخاصية على لغة البرمجة النصية JavaScript الافتراضية فقط قيمة الإخراج.
نسخة الكود كما يلي:
<script language = "javaScript">
وظيفة A () {
ب = "أ" ؛
}
أ () ؛
تنبيه (ب) ؛
</script>
هناك مشكلة في المتغيرات ، حتى لو أعلنت متغيرًا في وظيفة على النحو الوارد أعلاه ، فسيصبح متغيرًا عالميًا.
ستكون هناك مشكلة إذا أعلنت ذلك مع VAR.
نسخة الكود كما يلي:
<script language = "javaScript">
وظيفة A () {
var b = "a" ؛
حذف ب ؛
تنبيه (ب) ؛
}
أ () ؛
</script>
ستظل النتيجة تنبثق.
للتأكد من أن برامج البرمجة النصية يمكن أن تنفذ بشكل طبيعي ، ما لم تستخدم عمداً آليات تشفير VBSCript و Script التي يتم دعمها فقط من قبل IE ، يجب ضبط سمة "النوع" لعلامة البرنامج النصي على "JavaScript" ، ولا يتم تعيين السمة "اللغوية" التي تم التخلي عنها.