জেভাস্ক্রিপ্ট ইমপ্লিমেন্টেশন

জেভাস্ক্রিপ্টের কোর এসি এমএস একটি ভাষার সার্টনগ্রাহী এবং মৌলিক অবজেক্ট বর্ণনা করে;

DOM ওয়েবপেজের বিষয়গুলো সংস্কারের পদ্ধতি এবং ইন্টারফেসকে বর্ণনা করে;

BOM ব্রাউজারের সাথে কার্যকরী পদ্ধতি এবং ইন্টারফেসকে বর্ণনা করে。

ECMAScript, DOM এবং BOM

যদিও ECMAScript একটি গুরুত্বপূর্ণ স্ট্যান্ডার্ড, তবে এটি জেভাস্ক্রিপ্টের একমাত্র অংশ নয়, এবং এটা একমাত্র প্রতিষ্ঠানীকৃত অংশও নয়। একটি সম্পূর্ণ জেভাস্ক্রিপ্ট কার্যকরণকে তিনটি ভিন্ন অংশ নির্মিত করা হয়:

জেভাস্ক্রিপ্ট একমাত্র ইসকোমস্ক্রিপ্ট, ডম, এবং বিওএম

ECMAScript

ECMAScript কোনো বিশেষ ব্রাউজারের সাথে বাঁধা না হয়, একইসঙ্গে, এটি কোনো ব্যবহারকারীর ইনপুট-আউটপুট পদ্ধতিরও উল্লেখ করে না (এটা C-এর মতো ভাষার সাথে ভিন্ন, যা এই ধরণের কাজগুলো করার জন্য বহির্ভূত লাইব্রেরির উপর নির্ভর করে)। তবে, ECMAScript কী আছে? ECMA-262 স্ট্যান্ডার্ড (ধারা 2) এর বর্ণনা এইরকম:

“ECMAScript বিভিন্ন হোস্ট ইনভায়ারনমেন্টের জন্য কোর স্ক্রিপ্টিং ক্ষমতা প্রদান করতে পারে, তাই কোর স্ক্রিপ্ট ভাষা কোনো বিশেষ হোস্ট ইনভায়ারনমেন্টের থেকে পৃথকভাবে নির্দিষ্ট করা হয়... ...”

ওয়েব ব্রাউজারগুলি ECMAScript-এর জন্য একটি হোস্ট ইনভায়ারনমেন্ট, কিন্তু এটা একমাত্র হোস্ট ইনভায়ারনমেন্ট নয়। এক্তকথাত, অনেকগুলি অন্যান্য বিভিন্ন ইনভায়ারনমেন্ট (যেমন Nombas-এর ScriptEase, এবং Macromedia-র Flash এবং Director MX-এর ActionScript) ECMAScript-এর রূপায়নকে আক্রমণ করতে পারে, তাই ECMAScript-এর ব্রাউজার বাইরে কীভাবে নির্দিষ্ট করা হয়?

সহজভাবে বলতে, ECMAScript-এর মাধ্যমে নিম্নলিখিত কিছু বর্ণনা করা হয়:

  • গ্রামার
  • টাইপ
  • বাক্য
  • কীওয়ার্ড
  • রিজার্ভড শব্দ
  • অপারেটর
  • অবজেক্ট

ECMAScript-এর মূলত একটি বর্ণনা, যা স্ক্রিপ্ট ভাষার সমস্ত বৈশিষ্ট্য, পদ্ধতি এবং অবজেক্টকে নির্দিষ্ট করে। অন্যান্য ভাষাও ECMAScript-কে রূপায়ন করতে পারে, যাতে তা কিছু পরিকল্পনা হিসাবে কাজ করে, JavaScript-এর মতো

ইসকোমস্ক্রিপ্ট, জেভাস্ক্রিপ্ট, একশনস্ক্রিপ্ট, স্ক্রিপটইজ

প্রত্যেকটি ব্রাউজারই তার নিজস্ব ECMAScript ইন্টারফেস রূপায়ন করে, এবং এই রূপায়নটি আরও বিস্তৃত করা হয়, যাতে DOM এবং BOM (যা আগামী অধ্যায়ে আরও আলোচনা করা হবে) অন্তর্ভুক্ত করা হয়। সেইসঙ্গে, ECMAScript-এর অন্যান্য রূপায়নও আছে, যেমন Windows Scripting Host (WSH), Macromedia-র Flash এবং Director MX-এর ActionScript, এবং Nombas ScriptEase

1. ECMAScript এর সংস্করণ

ECMAScript-এর বিভিন্ন সংস্করণ আছে, এটা ECMA-262 নামক একটি প্রতিমানের মাধ্যমে নির্দিষ্ট করা হয়েছে। অন্যান্য প্রতিমানের মতো, ECMA-262-এরও সংশোধন এবং নতুন সংস্করণ প্রকাশ করা হয়। যখন প্রধান সংশোধনী হয়, তখন একটি নতুন স্ট্যান্ডার্ড সংস্করণ প্রকাশ করা হয়। সর্বশেষ ECMA-262-এর সংস্করণ 5.1, 2011 সালের জুনে প্রকাশ করা হয়

ECMA-262 এর প্রথম সংস্করণ Netscape এর JavaScript 1.1-এর অন্তর্নিহিতভাবে একই, তবে সবগুলি ব্রাউজার-সংশ্লিষ্ট কোডগুলি মুক্ত করা হয়েছে, এছাড়াও কিছু ছোট সংশোধনী করা হয়েছে। প্রথমে, ECMA-262-এর অনুসারে Unicode প্রতিমানের সমর্থন চায় (বহুভাষিক সমর্থনের জন্য)। দ্বিতীয়ত, তা বলে, অবজেক্টগুলি প্ল্যাটফর্ম নিরপেক্ষ (Netscape এর JavaScript 1.1-এর ক্ষেত্রে, অবজেক্টগুলির মধ্যে Date অবজেক্ট, প্ল্যাটফর্মের উপর নির্ভরশীল)। এটাই JavaScript 1.1 এবং 1.2-এর প্রথম সংস্করণটি ECMA-262 প্রতিমানের সাথে মানানসপর্ক হতে পারেনির প্রধান কারণ

ECMA-২৬২ দ্বিতীয় সংস্করণের অধিকাংশ সংশোধন সম্পূর্ণভাবে সম্পাদনাত্মক। এই প্রমাণপত্রের এইচ সংশোধন সম্প্রসারণ করার জন্য, ISO/IEC-১৬২৬২-এর নির্বাচিত সময়কে মান্য করা হয়, এবং কোনো বিশেষ সংশোধন, প্রসার এবং মুক্তি করা হয়নি। ECMAScript-এর দ্বিতীয় সংস্করণকে সাধারণত অনুসরণ করা হয় না।

ECMA-২৬২ তৃতীয় সংস্করণ এই প্রমাণপত্রের প্রথমবারের মতো সত্যিকারের অপশিষ্ট হিসাবে সংশোধিত হয়। এটি স্ট্রিং প্রক্রিয়া, ত্রুটি নির্দিষ্টকরণ এবং নমুনা প্রদর্শনের অপশিষ্ট সংশোধন প্রদান করে। এছাড়াও, এটি রেগুলার এক্সপ্রেশন, নতুন কন্ট্রোল স্টেটমেন্ট, try...catch এক্সেপশন হ্যান্ডলিং এবং আন্তর্জাতিকীকরণের জন্য কিছু ছোট সংশোধন যোগ করে। সাধারণত, এটি ECMAScript-কে একটি প্রকৃত প্রোগ্রামিং ভাষা হিসাবে চিহ্নিত করে

2. ECMAScript-এর মানমাপন কি?

এসএমএ-২৬২-এ, ECMAScript-এর মানমাপন (conformance) একটি স্পষ্ট নির্দিষ্টকরণ রয়েছে। একটি স্ক্রিপ্ট ভাষাকে নিচের চারটি মৌলিক নীতি মেটাতে হবে:

  • মান্য রূপান্তরকে এসমাপ্ত এসএমএ-২৬২-এর নির্দিষ্ট সমস্ত ‘টাইপ, মান, অবজেক্ট, প্রকৃতি, ফাংশন এবং প্রোগ্রাম ভাষা এবং সেম্যান্টিক’ (এসএমএ-২৬২, প্রথম পৃষ্ঠা) সমর্থন করতে হবে
  • মান্য রূপান্তরকে ইউনিকোড অক্ষর প্রমাণপত্র (UCS) সমর্থন করতে হবে
  • মান্য রূপান্তরকে এসমাপ্ত এসএমএ-২৬২-এর নির্দিষ্ট না হওয়া ‘অতিরিক্ত টাইপ, মান, অবজেক্ট, প্রকৃতি এবং ফাংশন’ (এসএমএ-২৬২-এর নিয়মমূলকের নিচে নতুন অবজেক্ট এবং নতুন প্রকৃতির নতুন প্রকৃতি)
  • মান্য রূপান্তরকে এসমাপ্ত এসএমএ-২৬২-এর নির্দিষ্ট না হওয়া ‘প্রোগ্রাম এবং রেগুলার এক্সপ্রেশন সিন্ট্যাক্স’ (অর্থাৎ বৈধ করা বা এক্সটেন্ড করা হওয়ার সম্ভাবনা রয়েছে বৈধ রূপান্তর সমর্থন)

সমস্ত ECMAScript রূপান্তরকে উপরোক্ত নিয়মমূলককে মান্য করা উচিত

3. ওয়েব ব্রাউজারের ECMAScript সমর্থন

জেভাস্ক্রিপ্ট ১.১ সহ নেটস্কেপ নেভিগেটর ৩.০ ১৯৯৬ সালে প্রকাশিত হয়। তারপর জেভাস্ক্রিপ্ট ১.১ নিয়মমূলককে একটি নতুন প্রমাণপত্র হিসাবে EMCA-কে প্রস্তুত করা হয়। জেভাস্ক্রিপ্ট-এর অপরাধী জনপ্রিয়তার মুহূর্তে, নেটস্কেপ অত্যন্ত আনন্দের সঙ্গে ১.২ সংস্করণ তৈরি করতে শুরু করে। কিন্তু একটি সমস্যা ছিল, ECMA নেটস্কেপের প্রস্তাবটি গ্রহণ করেনি। নেটস্কেপ নেভিগেটর ৩.০ প্রকাশের ঠিক পরে, মাইক্রোসফট আইই ৩.০ প্রকাশ করে। এই সংস্করণের আইই একটি JScript ১.০ (মাইক্রোসফটের নিজস্ব জেভাস্ক্রিপ্ট রূপান্তর) সহ এসেছিল, যা মূলত জেভাস্ক্রিপ্ট ১.১-এর সমতুল্য হওয়ার জন্য পরিকল্পনা করা হয়েছিল। কিন্তু, ডকুমেন্টেশন অপর্যাপ্ত এবং কিছু অন্যায় পুনরাবৃত্তির জন্য, JScript ১.০ জেভাস্ক্রিপ্ট ১.১-এর স্তরের তুলনায় খুবই কম স্তরে ছিল।

在 ECMA-262 第一版定稿之前,发布含有 JavaScript 1.2 的 Netscape Navigator 4.0 是在 1997 年,在那年晚些时候,ECMA-262 标准被接受并标准化。因此,JavaScript 1.2 并不和 ECMAScript 的第一版兼容,虽然 ECMAScript 应该基于 JavaScript 1.1。

JScript 的下一步是 IE 4.0 中加入的 JScript 3.0(2.0 版是随 IIS 3.0 一起发布的,但并未包含在浏览器中)。微软大力宣传 JScript 3.0 是世界上第一个真正符合 ECMA 标准的脚本语言。而那时,ECMA-262 还没有最终定稿,所以 JScript 3.0 也遭受了和 JavaScript 1.2 同样的命运 - 它还是没能符合最终的 ECMAScript 标准。

Netscape 选择在 Netscape Navigator 4.06 中升级它的 JavaScript 实现。JavaScript 1.3 使 Netscape 终于完全符合了 ECMAScript 第一版。Netscape 加入了对 Unicode 标准的支持,并让所有的对象保留了在 JavaScript 1.2 中引入的新特性的同时实现了平台独立。

যখন নেটস্কেপ তার সোর্স কোডকে মোজিলা প্রকল্প হিসাবে জনসমক্ষে প্রকাশ করে, তখন জেভাস্ক্রিপ্ট ১.৪ একসুত্রে নেটস্কেপ নেভিগেটর ৫.০ এক্সক্লুজিভলি প্রবেশ করবে এই পরিকল্পনা ছিল। কিন্তু, একটি অগ্রহী নিষ্কর্ষ - নেটস্কেপের কোডকে সম্পূর্ণভাবে পুনর্নবীকরণ করা, এই কাজটিকে বিঘ্নিত করেছিল। জেভাস্ক্রিপ্ট ১.৪ শুধুমাত্র নেটস্কেপ এনটারপ্রাইজ সার্ভারের সার্ভার স্ক্রিপ্ট ভাষা হিসাবে প্রকাশ করা হয়েছিল, এবং পরের সময়ে এটা ব্রাউজারে স্থাপন করা হয়নি。

এখন, সমস্ত প্রধান ওয়েব ব্রাউজারগুলো ইসিএমএ-২৬২ তৃতীয় সংস্করণ মেনে চলেছে।

নিচের টেবিলে সবচেয়ে বেশি জনপ্রিয় ওয়েব ব্রাউজারগুলোতে ECMAScript সমর্থন তালিকাভুক্ত হয়েছে:

ব্রাউজার ডম কম্প্যাটিবিলিটি
নেটস্কেপ নেভিগেটর 2.0 -
নেটস্কেপ নেভিগেটর 3.0 -
নেটস্কেপ নেভিগেটর 4.0 - 4.05 -
নেটস্কেপ নেভিগেটর 4.06 - 4.79 এডিশন 1
নেটস্কেপ ৬.০+ (মুজিলা ০.৬.০+) এডিশন 3
ইন্টারনেট এক্সপ্লোরার 3.0 -
ইন্টারনেট এক্সপ্লোরার 4.0 -
ইন্টারনেট এক্সপ্লোরার 5.0 এডিশন 1
ইন্টারনেট এক্সপ্লোরার 5.5+ এডিশন 3
অপেরা 6.0 - 7.1 এডিশন 2
অপেরা 7.2+ এডিশন 3
স্যাফার১.০+ / কনকুয়ারর ~ ২.০+ এডিশন 3

DOM

DOM (ডকুমেন্ট অবজেক্ট মডেল) এইচটিএমএল এবং XML-এর অ্যাপ্লিকেশন ইন্টারফেস (API)। DOM পূর্ণ পৃষ্ঠা কে নোড হিসাবে গঠিত ডকুমেন্ট হিসাবে পরিকল্পনা করে। HTML এবং XML পৃষ্ঠার প্রত্যেক অংশই একটি নোডের উদ্ভব। নিচের HTML পৃষ্ঠা উদাহরণ দেখুন:

<html>
  <head>
    <title>Sample Page</title>
  </head>
  <body>
    <p>hello world!</p>
  </body>
</html>

এই কোডটি DOM-এর মাধ্যমে একটি নোড হাইওয়ার্ড চিত্র তৈরি করা যেতে পারে:

ডম নোড লেভেল ম্যাপ

DOM ডকুমেন্টটিকে একটি ট্রি হিসাবে প্রকাশ করে, যার মাধ্যমে ডেভেলপাররা ডকুমেন্টের উপাত্ত এবং কাঠামোকে অপরিহার্য নিয়ন্ত্রণ করতে পারেন। DOM API-এর মাধ্যমে নোডগুলোকে সহজেই মুছে ফেলা, যোগ করা এবং পরিবর্তন করা যায়。

1. DOM-এর কীভাবে অপরিহার্য

IE 4.0 এবং Netscape Navigator 4.0 থেকে ভিন্ন রূপের ডাইনামিক HTML (DHTML) সমর্থন করা হয়েছে, ডেভেলপাররা প্রথমবারের মতো পৃষ্ঠার বৈশিষ্ট্য এবং উপাত্ত পরিবর্তন করতে পারছেন যদি তাঁরা পৃষ্ঠা পুনর্লোড না করেন। এটি ওয়েব প্রযুক্তির একটি বড় পদক্ষেপ, কিন্তু এটি বিশাল সমস্যাও নিয়ে আসে। Netscape এবং মাইক্রোসফট পৃথকভাবে DHTML তৈরি করেছে, যা ওয়েব ডেভেলপারদেরকে এমন একটি সময়ে এসেছে যখন তাঁরা একটি এইচটিএমএল পৃষ্ঠা লিখতে পারতেন যা সব ব্রাউজারেই কাজ করত

শিল্প নিশ্চিত করেছে যে, ওয়েবের মধ্যবর্তী প্রকারকে রাখতে তাঁরা কিছু করতে হবে, তাঁরা উদ্বেগ প্রকাশ করেছেন যে, যদি Netscape এবং মাইক্রোসফট কোম্পানির এইভাবে কাজ করতে দেয়া হয়, তবে ওয়েব দুটি পৃথক অংশে বিভক্ত হবে, যেগুলো কেবলমাত্র নির্দিষ্ট ব্রাউজারগুলোতেই কাজ করবে। তাই, ওয়েব যোগাযোগ প্রমাণপত্র নির্দিষ্টকৃত সংস্থা W3C (World Wide Web Consortium) ডমেইন বানানোর কাজ শুরু করেছেন。

2. DOM এর বিভিন্ন স্তর

ডম লেভেল ১-এর প্রস্তাব করা হয়েছে W3C-এর ১৯৯৮ সালের ১০ অক্টোবর। এটি দুটি মডিউল দ্বারা গঠিত, যেমন DOM Core এবং DOM HTML। প্রথমটি একক্ষম এক্সএমএল ডকুমেন্ট চিত্রকে প্রদান করে, যাতে ডকুমেন্টের যে কোনও অংশকে প্রদর্শন এবং অপারেশন করা যায়; দ্বিতীয়টি কিছু এইচটিএমএল-ভিত্তিক বিশেষ অবজেক্ট এবং পদ্ধতি যোগ করে, যার ফলে DOM Core-কে বিস্তার করে।

লক্ষ্য করুন, DOM জাভাস্ক্রিপ্ট-এর বিশেষ নয়, একইভাবে অন্যান্য বেশ কিছু ভাষা তা রূপায়িত করেছে। কিন্তু, ওয়েব ব্রাউজারের DOM-এর ECMAScript-এর মাধ্যমে রূপায়িত হয়েছে, এখন জাভাস্ক্রিপ্ট ভাষার একটি বড় অংশ হয়ে উঠেছে।

ডম লেভেল ১ একটি লক্ষ্যবস্তু, যেমন ডকুমেন্টের স্ট্রাকচার পরিকল্পনা, ডম লেভেল ২-এর লক্ষ্য বিস্তৃতভাবে রয়েছে। প্রাথমিক ডম-এর বিস্তারে মাউস এবং ব্যবহারকারী ইন্টারফেস ইভেন্ট (DHTML-এর একটি সমৃদ্ধ সমর্থন), পরিসর, প্রবহ (ডকুমেন্ট ডকুমেন্টের পদ্ধতি) এবং CSS (ক্যাটারিং স্টাইল সেট) সমর্থন যোগ করা হয়েছে, এবং অবজেক্ট ইন্টারফেসের মাধ্যমে CSS-এর সমর্থন যোগ করা হয়েছে। লেভেল ১-এ উপস্থাপিত প্রাথমিক ডম কোরও XML নামস্পেস সমর্থন করে:

ডম লেভেল ২-এ কিছু নতুন ডম মডিউল উপস্থাপন করা হয়েছে, যাতে নতুন ইন্টারফেস টাইপকে হানা যায়:

  • ডম ভিউ - ডকুমেন্টের বিভিন্ন দৃশ্যকে ট্র্যাক করার বর্ণনা (যেমন CSS স্টাইলাইজেশন পূর্ব এবং CSS স্টাইলাইজেশন পর)
  • ডম ইভেন্ট - ইভেন্ট ইন্টারফেস বর্ণনা
  • ডম স্টাইল - সিএসএস (ক্যাটারিং স্টাইল সেট) ভিত্তিক স্টাইলকে হানতে ইন্টারফেস বর্ণনা
  • ডম প্রবহ এবং পরিসর - ডকুমেন্ট ট্রি-কে প্রবহ এবং অপারেশন করার ইন্টারফেস বর্ণনা

ডম লেভেল ৩-এ ডকুমেন্টটি একইভাবে লোড এবং সংরক্ষণ করার পদ্ধতি (ডম লোড এবং সেভ) এবং ডকুমেন্ট পরীক্ষণ (ডম ভ্যালিডেশন) করার পদ্ধতি উপস্থাপন করে, যার ফলে ডম-এর আরও বিস্তার হয়েছে। লেভেল ৩-এ, ডম কোর সবক্ষম এক্সএমএল ১.০-র বিভিন্ন বৈশিষ্ট্যকে সমর্থন করে, যেমন এক্সএমএল ইনফোসেট, XPath এবং এক্সএমএল বেস。

ডম শিক্ষার সময়, কেউ ডম লেভেল ০-এর উল্লেখ করতে পারে। লক্ষ্য করুন, কোনও ডম লেভেল ০ এর স্ট্যান্ডার্ড নেই, তা কেবলমাত্র ডম-এর একটি ঐতিহাসিক সূত্র (ডম লেভেল ০ হলো IE 4.0 এবং নেটস্কেপ নেভিগেটর 4.0-এ সমর্থিত প্রাথমিক DHTML)।

3. অন্যান্য ডম

ডম কোর এবং ডম এইচটিএমএল ছাড়াও, অন্যান্য কিছু ভাষা তাদের নিজস্ব ডম স্ট্যান্ডার্ড প্রকাশ করেছে। এই ভাষাগুলো সবই XML-ভিত্তিক, প্রত্যেক ডম সম্পর্কিত ভাষাকে বিশেষ পদ্ধতি এবং ইন্টারফেস যোগ করে:

  • স্কেলেবল ভেক্টর ল্যাঙ্গুয়েজ (SVG) ১.০
  • ডিজিটাল মার্কআপ ল্যাঙ্গুয়েজ (MathML) ১.০
  • সিনক্রোনাইজ মাল্টিমিডিয়া ইন্টারফেস (SMIL)

মন্তব্য:আপনি আরও বিষয় শিখতে চান, তবে কোডউইসির সমীক্ষা করুন SMIL টিউটোরিয়ালSVG টিউটোরিয়াল

এছাড়া, অন্যান্য ভাষাও নিজস্ব DOM-এর রূপায়ণ করেছে, যেমন মুজিলা এক্সিম ইউজার ইন্টারফেস (XUL)। কিন্তু শুধুমাত্র উপরোক্ত কয়েকটি ভাষা একটি W3C-র সুপারিশ স্ট্যান্ডার্ড

ওয়েব ব্রাউজারের ডম সমর্থন

ডম ব্রাউজারের রূপায়ণের আগেই একটি প্রমাণপত্র ছিল। IE ৫.০ সংস্করণে ডম-এর প্রথম প্রয়াস করেছিল, কিন্তু একটি সত্যিকারী DOM-এর সমর্থন প্রদান করেছিল ৫.৫ সংস্করণ থেকে, IE ৫.৫ ডম লেভেল ১ রূপায়িত করেছিল। তবে, তখন থেকেই IE ডম-এর কোনো নতুন ফিচার যোগ করেনি。

নেটস্কেপ ৬ (মুজিলা ০.৬.০) পর্যন্ত ডম সমর্থন যোগ করেছে। এখন, মুজিলা ডম-এর সর্বোত্তম সমর্থন প্রদান করে, যা সম্পূর্ণ লেভেল ১, সম্পূর্ণভাবে লেভেল ২ এবং অংশবিশেষ লেভেল ৩ রূপায়িত করেছে। (মুজিলা ডেভেলপমেন্ট গ্রুপের লক্ষ্য হল একটি ১০০% স্ট্যান্ডার্ড সময়িতসর্গীকৃত ব্রাউজার তৈরি করা, এবং তাদের কাজ পুরস্কৃত হয়েছে)。

ওপেরা ৭.০ সংস্করণ পর্যন্ত ডম সমর্থন যোগ করেছে, এবং স্যাফার১.০+ ডম লেভেল ১ সম্পূর্ণভাবে রূপায়িত করেছে। তারা সমস্তই আইই ৫.৫-এর একই স্তরে রয়েছে, কিছু কিছুমাত্র আইই ৫.৫-কে অতিক্রম করেছে। কিন্তু, DOM-এর সমর্থনের দিক থেকে, সমস্ত ব্রাউজার মুজিলা-এর থেকে দূরে রয়েছে। নিচের টাবলে সাধারণ ব্রাউজারগুলির DOM-এর সমর্থন তালিকা দেওয়া হয়েছে。

ব্রাউজার ডম কম্প্যাটিবিলিটি
নেটস্কেপ নেভিগেটর ১.০ - ৪.x -
নেটস্কেপ ৬.০+ (মুজিলা ০.৬.০+) লেভেল ১, লেভেল ২, লেভেল ৩ (অংশবিশেষ)
আইই ২.০ - ৪.x -
আইই ৫.০ লেভেল ১ (ন্যূনতম)
আইই ৫.৫+ লেভেল ১ (সম্পূর্ণভাবে)
ওপেরা ১.০ - ৬.০ -
ওপেরা ৭.০+ লেভেল ১ (সম্পূর্ণভাবে) / লেভেল ২ (অংশবিশেষ)
স্যাফার১.০+ / কনকুয়ারর ~ ২.০+ লেভেল ১

মন্তব্য:যদি আপনি ডমেইন অফ মাইক্রোল্যাঙ্গুয়েজ (DOM) নিয়ে আরও শিক্ষা করতে চান, তবে কোডউইসির সমীক্ষা করুন HTML DOM টিউটোরিয়ালXML DOM টিউটোরিয়াল

BOM

IE 3.0 和 Netscape Navigator 3.0 提供了一种特性 - BOM(浏览器对象模型),可以对浏览器窗口进行访问和操作。使用 BOM,开发者可以移动窗口、改变状态栏中的文本以及执行其他与页面内容不直接相关的动作。使 BOM 独树一帜且又常常令人怀疑的地方在于,它只是 JavaScript 的一个部分,没有任何相关的标准。

BOM 主要处理浏览器窗口和框架,不过通常浏览器特定的 JavaScript 扩展都被看做 BOM 的一部分。这些扩展包括:

  • 弹出新的浏览器窗口
  • 移动、关闭浏览器窗口以及调整窗口大小
  • 提供 Web 浏览器详细信息的定位对象
  • 提供用户屏幕分辨率详细信息的屏幕对象
  • 对 cookie 的支持
  • IE 扩展了 BOM,加入了 ActiveXObject 类,可以通过 JavaScript 实例化 ActiveX 对象

由于没有相关的 BOM 标准,每种浏览器都有自己的 BOM 实现。有一些事实上的标准,如具有一个窗口对象和一个导航对象,不过每种浏览器可以为这些对象或其他对象定义自己的属性和方法。

参阅: