بادئ ذي بدء ، دعنا نعلن هنا ، إصدار متصفح الاختبار الخاص بي هو Chrome15.0.874.121 Firefox 8.01 IE9 Ietetester
الرمز التالي حول البيان
1: الحصول على شريط المتداول
نسخ رمز رمز على النحو التالي:
وظيفة getScroll () {{)
var t ، l ، w ، h ؛
if (document.documentElement && document.documentedlement.scrolltop) {
t = document.documentElement.scrolltop ؛
l = document.documentElement.scrollleft ؛
W = document.documentElement.scrollwidth ؛
H = document.documentElement.scrollheight ؛
}
آخر
if (document.body) {
t = document.body.scrolltop ؛
l = document.body.scrollleft ؛
w = document.body.scrollwidth ؛
h = document.body.scrollheight ؛
}
يعود {
T: T ،
L: L ،
دبليو: دبليو ،
H: ح
} ؛
}
2: احصل على ارتفاع عرض متصفح العرض
نسخ رمز رمز على النحو التالي:
وظيفة getPageWidth () {
var pagewidth = window.innerwidth ؛
ifof pagewindth!
if (document.compatmode == "css1compat") {{
pageWidth = document.documentElement.ClientWidth ؛
}
آخر {
pageWidth = document.body.clientwidth ؛
}
}
إرجاع PageWidth ؛
}
وظيفة getPageheight () {
var pageheight = window.innerheight ؛
ifof pagewindth!
if (document.compatmode == "css1compat") {{
pageheight = document.documentElement.clientheight ؛
}
آخر {
pageheight = document.body.clitingheight ؛
}
}
إرجاع pageheight ؛
}
3: احصل على اسم نموذج المتصفح الحالي
نسخ رمز رمز على النحو التالي:
وظيفة () {
var sys = {} ؛
var ua = navigator.useragent.toLowerCase () ؛
var s ؛
(s = ua.match (/msie ([/d.+)/))؟ /)؟ (/أوبرا. (#/d.)/))؟ )))))))))).
if (sys.ie! = null) {
العودة ("أي:" + sys.ie) ؛
}
if (sys.firefox! = null) {
العودة ("Firefox:" + sys.firefox) ؛
}
if (sys.Chrome! = null) {
العودة ("Chrome:" + sys.Chrome) ؛
}
if (sys.opera! = null) {
العودة ("الأوبرا:" + sys.opera) ؛
}
if (sys.safari! = null) {
العودة ("Safari:" + sys.safari) ؛
}
}
4: مراقبة الأحداث
نسخ رمز رمز على النحو التالي:
دالة (العنصر ، النوع ، المعالج) {{
if (element.addeventristener) {{
element.addeventListener (النوع ، معالج ، خطأ) ؛
}
آخر
ifment.attachevent) {
element.attachevent ("on" + type ، handler) ؛
}
آخر {
عنصر [على " + type] = معالج ؛
}
}
5: إزالة الحدث
نسخ رمز رمز على النحو التالي:
دالة (العنصر ، النوع ، المعالج) {{
if (element.removeeventListener) {
element.RemoveEventListener (النوع ، معالج ، خطأ) ؛
}
آخر
ifment.detachevent) {
element.detachevent ("on" + type ، handler) ؛
}
آخر {
العنصر ["ON" + type] = null ؛
}
}
6: عندما يتم توزيع حدث Firefox باستمرار ، ستكون هناك مشاكل في الحادث الأول.
نسخ رمز رمز على النحو التالي:
وظيفة (حدث) {
الحدث = (الحدث؟ الحدث: window.event) ؛
if (event == null) {
var $ e = function () {
var c = $ e.caller ؛
بينما (C.Caller)
C = c.caller ؛
إرجاع c.arguments [0]
} ؛
__defineGetter __ ("الحدث" ، $ e) ؛
}
حدث العودة ؛
}
7: منع الأحداث الافتراضية
نسخ رمز رمز على النحو التالي:
وظيفة (حدث) {
if (event.preventDefault) {
Event.PreventDefault () ؛
}
آخر {
Event.ReturnValue = false ؛
}
}
8: لا تواصل نشر الحادث
نسخ رمز رمز على النحو التالي:
وظيفة (حدث) {
if (event.stopPropagation) {
event.stoppropagation () ؛
}
آخر {
event.cancelBubble = true ؛
}
}
9: احصل على هدف الحدث
نسخ رمز رمز على النحو التالي:
وظيفة (حدث) {
Return event.target ||.
}
10: documen.doctype لا يتفق مع الدعم
E: إذا كان هناك وصف نوع المستند ، فسيتم تفسيره بخطأ كتعليق توضيحي وبالتعليق عليه كعقدة تعليق.
Firefox: إذا كان هناك وصف نوع المستند ، استخدمه كأول مستند.
Safari ، Chrome ، Opera: إذا كان هناك وصف نوع المستند ، فسيتم شرحه كتفسير ، ولكنه لن يظهر في الأطفال كودبني للوثيقة.
11: ابحث عن عناصر
في بعض الأحيان لا أفهم حقًا ما يفعله IE دائمًا ، أريد دائمًا إحداث تغيير. إذا كان النظام لا يسمح لنفسي بالمتصفح ، فأنا أجرؤ على القول إن حصة IE ستكون أقل.
إذا هما الهوية والاسم متماثلين ، فسيتم إرجاعه أيضًا
نسخ رمز رمز على النحو التالي:
<html>
<head>
<script defer>
var it item = document.getElementById ("my") ؛
itm.value = "Second" ؛
</script>
</head>
<body>
<إدخال type = "text" name = "my" value = "first">
</body>
</html>
في IE ، تتغير النتائج.
الشيء نفسه هو IE ، معرف غير متميز
نسخ رمز رمز على النحو التالي:
<html>
<head>
<script defer>
var it item = document.getElementById ("my") ؛
itm.value = "Second" ؛
</script>
</head>
<body>
<type type = "text" id = "my" value = "first">
</body>
</html>
آسف ، تغيرت نتائجه مرة أخرى.
12: إذا كانت سمة مخصصة ، فإن item.MyAttripts لا يمكن رسم النتائج الصحيحة بدون متصفح IE.
نسخ رمز رمز على النحو التالي:
وظيفة (عنصر ، myatt) {
إرجاع itm.attributes [myatt].
}
في نفس الحالة ، يجب أن تعرف سمة الإعداد ما يجب القيام به ، أي المهمة.
نسخ رمز رمز على النحو التالي:
وظيفة (العنصر ، myatt ، القيمة) {
item.attributes [myatt].
}
13: عدد اللاعبين الفرعيين للعنصر
نسخ رمز رمز على النحو التالي:
<ul id = "myul">
<li> الأول </li>
<li> الثاني </li>
<li> الثالث </li>
</ul>
نتيجة IE هي 3 والمتصفح الآخر هو 7.
الرمز الفارغ بين العقدة هو عقدة نصية في متصفحات أخرى ، والنتيجة هي 7. إذا أصبح الأمر هكذا ،
نسخ رمز رمز على النحو التالي:
<ul id = "myul"> <li> أولاً </li> <li> الثاني </li> <li> الثالث </li> </ul>
وبهذه الطريقة ، فإن نتائج الجميع هي 3.
14: إنشاء قضايا العقدة
نسخ رمز رمز على النحو التالي:
// إضافة عنصر ديناميكي ، يمكن تحقيق جميع المتصفحات
var newNode = document.createElement ("Input") ؛
newNode.type = "button" ؛
newNode.value = "Sixth" ؛
// يمكن تحقيقه في IE
var newNode = document.createElement ("<input type =/" button/">">) ؛
15: عند حماية الانقر فوق اليمين ، يختلف Firefox عن الآخرين ، في حادثة OnContextMenu.
16: عند إضافة النمط والبرنامج النصي ديناميكيًا ، فإن أي متصفحات أخرى مختلفة. فحص محدد.
17: بالنسبة إلى DOM2 و DOM3 ، يكون الوضع أكثر تعقيدًا.