JavaScript عمل

ਜਾਵਸਕ੍ਰਿਪਟ ਦਾ ਮੁੱਖ ECMAScript ਇਸ ਭਾਸ਼ਾ ਦੀ ਸਿਨਤਾਕਰਮ ਅਤੇ ਮੁੱਢਲੇ ਆਬਜ਼ਦਾਂ ਦੇ ਵਰਣਨ ਕਰਦਾ ਹੈ;

DOM ਵੈੱਬਪੇਜਿਨ ਦੇ ਸਮਾਨਾਂ ਦੇ ਤਰੀਕਿਆਂ ਅਤੇ ਇੰਟਰਫੇਸ ਦੇ ਵਰਣਨ ਕਰਦਾ ਹੈ;

BOM ਬਰਾਊਜ਼ਰ ਨਾਲ ਅਦਾਨ-ਪ੍ਰਦਾਨ ਦੇ ਤਰੀਕਿਆਂ ਅਤੇ ਇੰਟਰਫੇਸ ਦੇ ਵਰਣਨ ਕਰਦਾ ਹੈ。

ECMAScript, DOM ਅਤੇ BOM

ਹਾਲਾਂਕਿ ECMAScript ਇੱਕ ਮਹੱਤਵਪੂਰਨ ਸਟੈਂਡਰਡ ਹੈ ਪਰ ਉਹ ਜਾਵਸਕ੍ਰਿਪਟ ਦਾ ਇੱਕਮਾਤਰ ਹਿੱਸਾ ਨਹੀਂ ਹੈ ਨਾ ਹੀ ਇੱਕਮਾਤਰ ਸਟੈਂਡਰਡ ਕੀਤਾ ਗਿਆ ਹਿੱਸਾ ਹੈ। ਇਸ ਤੋਂ ਇਲਾਵਾ ਇੱਕ ਪੂਰੀ ਜਾਵਸਕ੍ਰਿਪਟ ਇਮਪਲੀਮੈਂਟੇਸ਼ਨ ਇਨ੍ਹਾਂ 3 ਵੱਖ-ਵੱਖ ਹਿੱਸਿਆਂ ਤੋਂ ਬਣੀ ਹੈ:

JavaScript شامل ECMAScript،DOM اور BOM

ECMAScript

ECMAScript ਕੋਈ ਵਿਸ਼ੇਸ਼ ਬਰਾਊਜ਼ਰ ਨਾਲ ਜੁੜਿਆ ਨਹੀਂ ਹੈ ਇਸ ਤੋਂ ਇਲਾਵਾ ਉਸ ਵਿੱਚ ਕੋਈ ਵੀ ਯੂਜ਼ਰ ਇਨਪੁਟ ਆਉਟਪੁਟ ਦੀ ਵਿਵਸਥਾ ਨਹੀਂ ਹੈ (ਇਹ ਕੋਈ ਵਿਸ਼ੇਸ਼ ਭਾਸ਼ਾ ਜਿਵੇਂ ਕਿ C ਨਾਲ ਵੱਖ ਹੈ ਜਿਸ ਵਿੱਚ ਇਸ ਤਰ੍ਹਾਂ ਦੇ ਕੰਮਾਂ ਲਈ ਬਾਹਰੀ ਲਾਇਬ੍ਰੇਰੀਆਂ ਉੱਤੇ ਨਿਰਭਰ ਕਰਨਾ ਹੁੰਦਾ ਹੈ) ਤਾਂ ਕੀ ECMAScript ਕੀ ਹੈ? ECMA-262 ਸਟੈਂਡਰਡ (ਦੂਜਾ ਪ੍ਰਬੰਧ) ਦੀ ਵਰਣਨਾ ਇਸ ਤਰ੍ਹਾਂ ਹੈ:

“ECMAScript ਕੋਲ ਵੱਖ-ਵੱਖ ਮਿਸ਼ਤਰਾਂ ਵਾਸਤੇ ਮੁੱਖ ਸਕ੍ਰਿਪਟ ਪ੍ਰੋਗਰਾਮਿੰਗ ਸਮਰੱਥਾ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ ਇਸ ਲਈ ਮੁੱਖ ਸਕ੍ਰਿਪਟ ਭਾਸ਼ਾ ਕੋਈ ਵਿਸ਼ੇਸ਼ ਮਿਸ਼ਤਰਾ ਨਾਲ ਵੱਖ ਹੈ ਜਿਸ ਦੇ ਮੁੱਖ ਮੁੱਦੇ ਨਾਲ ਨਿਰਧਾਰਿਤ ਕੀਤੀ ਜਾਂਦੀ ਹੈ... ...”

Web 浏览器对于 ECMAScript 来说是一个宿主环境,但它并不是唯一的宿主环境。事实上,还有不计其数的其他各种环境(例如 Nombas 的 ScriptEase,以及 Macromedia 同时用在 Flash 和 Director MX 中的 ActionScript)可以容纳 ECMAScript 实现。那么 ECMAScript 在浏览器之外规定了些什么呢?

简单地说,ECMAScript 描述了以下内容:

  • 语法
  • 类型
  • 语句
  • 关键字
  • 保留字
  • 运算符
  • 对象

ECMAScript 仅仅是一个描述,定义了脚本语言的所有属性、方法和对象。其他语言可以实现 ECMAScript 来作为功能的基准,JavaScript 就是这样:

ECMAScript،JavaScript،ActionScript،ScriptEase

每个浏览器都有它自己的 ECMAScript 接口的实现,然后这个实现又被扩展,包含了 DOM 和 BOM(在以下几节中再探讨)。当然还有其他实现并扩展了 ECMAScript 的语言,例如 Windows 脚本宿主(Windows Scripting Host, WSH)、Macromedia 在 Flash 和 Director MX 中的 ActionScript,以及 Nombas ScriptEase。

1. ECMAScript 的版本

ECMAScript 分成几个不同的版本,它是在一个叫做 ECMA-262 的标准中定义的。和其他标准一样,ECMA-262 会被编辑和更新。当有了主要更新时,就会发布一个标准的新版。最新 ECMA-262 的版本是 5.1,于 2011 年 6 月发布。

ECMA-262 的第一版在本质上与 Netscape 的 JavaScript 1.1 是一样,只是把所有与浏览器相关的代码删除了,此外还有一些小的调整。首先,ECMA-262 要求对 Unicode 标准的支持(以便支持多语言)。第二,它要求对象是平台无关的(Netscape 的 JavaScript 1.1 事实上有不同的对象实现,例如 Date 对象,是依赖于平台)。这是 JavaScript 1.1 和 1.2 为什么不符合 ECMA-262 规范第一版的主要原因。

ECMA-262 的第二版大部分更新本质上是编辑性的。这次标准的更新是为了与 ISO/IEC-16262 的严格一致,也并没有特别添加、更改和删除内容。ECMAScript 一般不会遵守第二版。

ECMA-262 第三版是该标准第一次真正的更新。它提供了对字符串处理、错误定义和数值输出的更新。同时,它还增加了正则表达式、新的控制语句、try...catch 异常处理的支持,以及一些为使标准国际化而做的小改动。一般来说,它标志着 ECMAScript 成为一种真正的编程语言。

2. ਈਸੀਮੈਸਕ੍ਰਿਪਟ ਮਿਆਰ ਕੀ ਹੈ

ਈਸੀਐਮਏ-262 ਵਿੱਚ ਈਸੀਮੈਸਕ੍ਰਿਪਟ ਮਿਆਰ ਨੂੰ ਸਪਸ਼ਟ ਰੂਪ ਨਾਲ ਵਰਣਨ ਕੀਤਾ ਗਿਆ ਹੈ। ਇੱਕ ਸਕ੍ਰਿਪਟ ਭਾਸ਼ਾ ਨੂੰ ਨਿਮਨਲਿਖਤ ਚਾਰ ਬੁਨਿਆਦੀ ਸਿਧਾਂਤਾਂ ਨੂੰ ਪੂਰਾ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ:

  • ਮਿਆਰ ਨੂੰ ਪੂਰਾ ਕਰਨ ਵਾਲੇ ਲਾਗੂਕਰਨਾਂ ਨੂੰ ਈਸੀਐਮਏ-262 ਵਿੱਚ ਵਰਣਨ ਕੀਤੇ ਗਏ ਸਾਰੇ ‘ਤਰੀਕੇ, ਮੁੱਲ, ਆਬਜੈਕਟ, ਗੁਣ, ਫੰਕਸ਼ਨ ਅਤੇ ਪ੍ਰੋਗਰਾਮ ਲਾਗੂਕਰਨ ਅਤੇ ਵਿਧਾਨ’ ਨੂੰ ਸਪੋਰਟ ਕਰਨਾ ਹੋਵੇਗਾ (ਈਸੀਐਮਏ-262, ਪਹਿਲੀ ਪੰਨਾ)
  • ਮਿਆਰ ਨੂੰ ਪੂਰਾ ਕਰਨ ਵਾਲੇ ਲਾਗੂਕਰਨਾਂ ਨੂੰ ਯੂਨੀਕੋਡ ਅੱਖਰਾਂ ਮਿਆਰ (UCS) ਨੂੰ ਸਪੋਰਟ ਕਰਨਾ ਹੋਵੇਗਾ
  • ਮਿਆਰ ਨੂੰ ਪੂਰਾ ਕਰਨ ਵਾਲੇ ਲਾਗੂਕਰਨਾਂ ਨੂੰ ਈਸੀਐਮਏ-262 ਵਿੱਚ ਵਿਸ਼ੇਸ਼ ਰੂਪ ਨਾਲ ਵਰਣਨ ਨਾ ਕੀਤੇ ਗਏ ‘ਵਧੇਰੇ ਤਰੀਕੇ, ਮੁੱਲ, ਆਬਜੈਕਟ, ਗੁਣ ਅਤੇ ਫੰਕਸ਼ਨ’ ਨੂੰ ਵਧਾਉਣ ਦਾ ਅਧਿਕਾਰ ਹੈ। ਈਸੀਐਮਏ-262 ਇਹ ਵਧਾਵਾਂ ਨੂੰ ਮਿਆਰ ਵਿੱਚ ਨਾ ਦਿੱਤੇ ਨਵੇਂ ਆਬਜੈਕਟ ਜਾਂ ਆਬਜੈਕਟ ਦੇ ਨਵੇਂ ਗੁਣਾਂ ਵਜੋਂ ਵਰਣਨ ਕਰਦਾ ਹੈ
  • ਮਿਆਰ ਨੂੰ ਪੂਰਾ ਕਰਨ ਵਾਲੇ ਲਾਗੂਕਰਨਾਂ ਨੂੰ ਈਸੀਐਮਏ-262 ਵਿੱਚ ਨਾ ਵਿਸ਼ੇਸ਼ ਰੂਪ ਨਾਲ ਵਰਣਨ ਕੀਤੇ ਗਏ ‘ਪ੍ਰੋਗਰਾਮ ਅਤੇ ਰੈਗੁਲਰ ਐਕਸਪ੍ਰੈਸ਼ਨ ਸਿਨਟੈਕਸ’ ਨੂੰ ਸਪੋਰਟ ਕਰਨ ਦਾ ਅਧਿਕਾਰ ਹੈ (ਮਤਲਬ ਬੁਨਿਆਦੀ ਰੈਗੁਲਰ ਐਕਸਪ੍ਰੈਸ਼ਨ ਸਪੋਰਟ ਦਾ ਪਰਿਵਰਤਨ ਜਾਂ ਵਧਾਉਣ ਦਾ ਅਧਿਕਾਰ ਹੈ)

ਸਾਰੇ ਈਸੀਮੈਸਕ੍ਰਿਪਟ ਲਾਗੂਕਰਨਾਂ ਨੂੰ ਉੱਪਰੋਕਤ ਮਿਆਰ ਨੂੰ ਪੂਰਾ ਕਰਨਾ ਹੋਵੇਗਾ。

3. ਵੈੱਬ ਬਰਾਊਜ਼ਰ ਵਿੱਚ ਈਸੀਮੈਸਕ੍ਰਿਪਟ ਸਪੋਰਟ

ਨੈਟਸਕੇਪ ਨੇਵੀਗੇਟਰ 3.0 ਵਿੱਚ ਜਿਸ ਵਿੱਚ ਜਾਵਾਸਕ੍ਰਿਪਟ 1.1 ਸ਼ਾਮਿਲ ਹੈ, ਉਹ 1996 ਵਿੱਚ ਜਾਰੀ ਕੀਤਾ ਗਿਆ। ਤਦ ਜਾਵਾਸਕ੍ਰਿਪਟ 1.1 ਨਿਯਮਾਂ ਨੂੰ ਇੱਕ ਨਵੇਂ ਮਿਆਰ ਦੇ ਦਸਤਾਵੇਜ਼ ਵਜੋਂ ਈਮਕੇਏ ਨੂੰ ਸੰਬੋਧਨ ਕੀਤਾ ਗਿਆ। ਜਾਵਾਸਕ੍ਰਿਪਟ ਦੀ ਵਿਆਪਕ ਪ੍ਰਸਿੱਧੀ ਦੇ ਨਾਲ, ਨੈਟਸਕੇਪ ਨੇ ਬਹੁਤ ਖੁਸ਼ੀ ਨਾਲ 1.2 ਆਈ ਵਿਕਸਤ ਕਰਨ ਲਈ ਸ਼ੁਰੂ ਕੀਤਾ। ਪਰ ਇੱਕ ਪ੍ਰਸ਼ਨ ਇਹ ਸੀ ਕਿ ਈਸੀਐਮਏ ਨੇ ਨੈਟਸਕੇਪ ਦੇ ਦਸਤਾਵੇਜ਼ ਨੂੰ ਮਨਜ਼ੂਰੀ ਨਹੀਂ ਦਿੱਤੀ। ਨੈਟਸਕੇਪ ਨੇਵੀਗੇਟਰ 3.0 ਦੇ ਜਾਰੀ ਹੋਣ ਤੋਂ ਥੋੜ੍ਹੇ ਸਮੇਂ ਬਾਅਦ, ਮਾਈਕਰੋਸਾਫਟ ਨੇ ਆਈਈ 3.0 ਜਾਰੀ ਕੀਤਾ। ਇਸ ਆਈਈ ਦੀ ਸੰਸਕਰਣ ਵਿੱਚ ਜਿਸ ਵਿੱਚ ਜਿਸਕ੍ਰਿਪਟ 1.0 (ਮਾਈਕਰੋਸਾਫਟ ਦੇ ਆਪਣੇ ਜਾਵਾਸਕ੍ਰਿਪਟ ਲਾਗੂਕਰਨ ਦਾ ਨਾਮ) ਸ਼ਾਮਿਲ ਹੈ, ਉਹ ਜਾਵਾਸਕ੍ਰਿਪਟ 1.1 ਨਾਲ ਤੁਲਨਾ ਕੀਤੇ ਜਾਣ ਵਾਲੇ ਸਨ। ਪਰ ਕਾਗਜ਼ਾਤ ਦੀ ਅਣਪੂਰਤੀ ਅਤੇ ਕੁਝ ਗਲਤ ਤਰ੍ਹਾਂ ਦੇ ਪਾਰਦਰਸ਼ੀ ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦੇ ਕਾਰਣ, ਜਿਸਕ੍ਰਿਪਟ 1.0 ਜਾਵਾਸਕ੍ਰਿਪਟ 1.1 ਦੇ ਪੱਧਰ ਤੋਂ ਬਹੁਤ ਘੱਟ ਸੀ।

ECMA-262 ਪਹਿਲੀ ਆਡੀਸ਼ਨ ਦੇ ਫਿਨਲ ਰੂਪ ਤੋਂ ਪਹਿਲਾਂ, JavaScript 1.2 ਵਾਲੇ Netscape Navigator 4.0 ਦੀ ਜਾਰੀ ਕਰਨ 1997 ਵਿੱਚ ਹੋਈ ਸੀ, ਉਸ ਸਾਲ ਦੇ ਅਖੀਰ ਵਿੱਚ, ECMA-262 ਸਟੈਂਡਰਡ ਮਾਨਤਾ ਪ੍ਰਾਪਤ ਕੀਤੀ ਅਤੇ ਸਟੈਂਡਰਡ ਕੀਤੀ ਗਈ। ਇਸ ਲਈ JavaScript 1.2 ਨੇ ECMAScript ਪਹਿਲੀ ਆਡੀਸ਼ਨ ਨਾਲ ਮੈਚ ਨਹੀਂ ਕੀਤਾ, ਹਾਲਾਂਕਿ ECMAScript ਨੇ ਜਾਵਾਸਕ੍ਰਿਪਟ 1.1 ਨੂੰ ਅਧਾਰ ਬਣਾਇਆ ਹੈ।

JScript ਦਾ ਅਗਲਾ ਸਟੇਪ ਇਕੱਠੇ ਹੀ IE 4.0 ਵਿੱਚ ਜੋੜੇ ਗਏ JScript 3.0 ਸੀ (2.0 ਵਰਜਨ IIS 3.0 ਨਾਲ ਜਾਰੀ ਕੀਤੀ ਗਈ ਸੀ, ਪਰ ਇਹ ਬਰਾਊਜ਼ਰ ਵਿੱਚ ਨਾ ਸ਼ਾਮਿਲ ਕੀਤਾ ਗਿਆ ਸੀ)। ਮਾਈਕਰੋਸਾਫਟ ਨੇ ਜਾਵਾਸਕ੍ਰਿਪਟ 3.0 ਨੂੰ ਦੁਨੀਆ ਵਿੱਚ ਪਹਿਲਾ ਵਾਸਤਵਿਕ ECMA ਸਟੈਂਡਰਡ ਮੈਚ ਕਰਨ ਵਾਲਾ ਸਕ੍ਰਿਪਟ ਲਾਂਗਵੇਜ ਦੇ ਰੂਪ ਵਿੱਚ ਜਾਰੀ ਕੀਤਾ। ਉਸ ਸਮੇਂ, ECMA-262 ਦੀ ਫਿਨਲ ਰੂਪ ਤੋਂ ਪਹਿਲਾਂ ਇਹ ਵੀ ਹੋਇਆ ਸੀ ਕਿ JScript 3.0 ਨੇ JavaScript 1.2 ਦੇ ਮਿਲਣ ਦੀ ਤਰਜਪਤੀ ਕੀਤੀ, ਇਹ ਅੰਤਮ ਤੌਰ 'ਤੇ ECMAScript ਸਟੈਂਡਰਡ ਨਾਲ ਮੈਚ ਨਹੀਂ ਕਰ ਸਕਿਆ।

ਨੈਟਸਕੇਪ ਨੇ ਨੈਟਸਕੇਪ ਨੇਵੀਗੇਟਰ 4.06 ਵਿੱਚ ਆਪਣੇ ਜਾਵਾਸਕ੍ਰਿਪਟ ਇਮਪਲੀਮੈਂਟੇਸ਼ਨ ਨੂੰ ਅੱਪਗ੍ਰੇਡ ਕੀਤਾ। JavaScript 1.3 ਨੇਟਸਕੇਪ ਨੂੰ ਅੰਤਮ ਤੌਰ 'ਤੇ ECMAScript ਪਹਿਲੀ ਆਡੀਸ਼ਨ ਨਾਲ ਮੈਚ ਕੀਤਾ। ਨੈਟਸਕੇਪ ਨੇ Unicode ਸਟੈਂਡਰਡ ਦੀ ਮਦਦ ਕੀਤੀ ਅਤੇ ਸਾਰੇ ਆਬਜੈਕਟਸ ਨੂੰ JavaScript 1.2 ਵਿੱਚ ਦਾਖਲ ਕੀਤੇ ਗਏ ਨਵੇਂ ਹੋਣ ਦੀਆਂ ਪ੍ਰਤਿਭਾਵਾਂ ਨੂੰ ਪਲੇਟਫਾਰਮ ਇੰਡੈਪੈਂਡੈਂਟ ਬਣਾਇਆ।

ਜਦੋਂ ਨੈਟਸਕੇਪ ਨੇ ਆਪਣੇ ਸੋਰਸ ਕੋਡ ਨੂੰ ਮੌਜੂਦਾ ਕੀਤਾ ਤਾਂ ਮੁੱਢਲਾ ਪਲਾਨ ਸੀ ਕਿ JavaScript 1.4 ਨੇਟਸਕੇਪ ਨੇਵੀਗੇਟਰ 5.0 ਵਿੱਚ ਜੋੜਿਆ ਜਾਵੇ। ਪਰ ਇੱਕ ਮਹਤਵਪੂਰਨ ਫੈਸਲਾ - ਨੈਟਸਕੇਪ ਦੇ ਕੋਡ ਨੂੰ ਪੂਰੀ ਤਰ੍ਹਾਂ ਮੁੜ ਤੋਂ ਡਿਜਾਇਨ ਕਰਨਾ, ਇਹ ਕੰਮ ਬਦਲ ਦਿੱਤਾ। JavaScript 1.4 ਕੇਵਲ ਇੱਕ ਨੈਟਸਕੇਪ ਐਂਟਰਪ੍ਰਾਈਜ਼ ਸਰਵਰ ਦੇ ਸਰਵਰ ਸਕ੍ਰਿਪਟ ਲਾਂਗਵੇਜ ਵਜੋਂ ਜਾਰੀ ਕੀਤਾ ਗਿਆ ਅਤੇ ਬਾਅਦ ਵਿੱਚ ਇਸ ਨੂੰ ਬਰਾਊਜ਼ਰ ਵਿੱਚ ਨਾ ਰੱਖਿਆ ਗਿਆ।

ਇਸ ਵੇਲੇ ਸਾਰੇ ਮੁੱਖੀ ਵੈੱਬ ਬਰਾਊਜ਼ਰ ਇਸ ਤੋਂ ਪਹਿਲਾਂ ਐੱਸੀਐੱਮਏ-262 ਤੀਜੀ ਆਡੀਸ਼ਨ ਨੂੰ ਮਾਨਤਾ ਦਿੰਦੇ ਹਨ।

درج ذیل جدول زیادہ تر مقبول ویب براوزروں میں ای سی ایم اسکریپٹ کی پشتیبندی کو لیا جاتا ہے:

بھرائش کار DOM کی سازگاری
Netscape Navigator 2.0 -
Netscape Navigator 3.0 -
Netscape Navigator 4.0 - 4.05 -
Netscape Navigator 4.06 - 4.79 Edition 1
Netscape 6.0+ (Mozilla 0.6.0+) Edition 3
Internet Explorer 3.0 -
Internet Explorer 4.0 -
Internet Explorer 5.0 Edition 1
Internet Explorer 5.5+ Edition 3
Opera 6.0 - 7.1 Edition 2
Opera 7.2+ Edition 3
Safari 1.0+/Konqueror ~ 2.0+ Edition 3

DOM

DOM (دکومنٹ اوبجیکٹ ماڈل) یہ ایچ تی ایم ایل اور ایکس ایم ایل کا ایپلی کیشن اینٹری (ای پی آئی) ہے۔ DOM پورا پیج کو نوڈز کی سطح میں بنیادی دکومنٹ بنانے کو منصوبہ بند کرتا ہے۔ ایچ تی ایم ایل یا ایکس ایم ایل پیج کا ہر حصہ نوڈ کا فرزند ہوتا ہے۔ درست یہ وائیب پیج پر نظر رکھیجئے:

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

یہ کوڈ DOM کا ایک نوڈ ہیریگ دیکھ سکتا ہے:

DOM نود مرتبطی

DOM کا استعمال سے وائیب کے معائنے کو ایک درخت کی شکل میں دکھایا جاتا ہے، جس سے مصنفین کو معائنے کے محتوا اور بنیادی تعمیر پر نئی حد کی کنٹرول حاصل ہوتی ہے۔ DOM ای پی آئی کا استعمال سے نوڈز کو آسان طور پر حذف، اضافہ یا تبدیل کیا جاسکتا ہے。

1. چرا DOM لازمی ہے

ایک وقت کے دوران جب آئی ای 4.0 اور نیت اسپرنگ ناویگر کاٹر 4.0 متعدد صورت حال کا ڈائنامک ایچ تی ایم ایل (DHTML) سپورٹ کرنا شروع کردیا، طوری کہ مصنفین کو پہلی مرتبہ پورا ویب پیج بار بار لوڈ نہ کرتے ہوئے اس کی شکل اور محتوا بدلنے کی صلاحیت حاصل ہوئی۔ یہ وائیب تکنیک کا ایک بڑا پیمانہ کا قدم تھا، لیکن اس نے بہت بڑی مسائل بھی لائی۔ نیٹ اسپرنگ اور مائیکروسافٹ دونوں نے اپنا اپنا DHTML تیار کیا، جس سے وائیب مصنفین کو وائیب براوزروں میں سے کسی ایک کے لئے صرف ایک ایچ تی ایم ایل پیج لکھنا پڑتا تھا، وہ دور ہو گیا تھا。

صنعت فی کی حقیقت یہ فیصلہ کرتا ہے کہ وائیب کی بین پلیٹ فارم خصوصیت کو برقرار رکھنا چاہئے، وہ تشویش کرتا ہے کہ اگر نیٹ اسپرنگ اور مائیکروسافٹ کمپنی کو اس طرح رہائی دی جائے تو وائیب دو مستقل حصوں میں تقسیم ہو جائے گا، جس میں سے ہر ایک خاص براوزر کو مناسب ہوگا۔ اس لئے، وائیب مواصلاتی معیارات کا مقرر کرنے والا گروپ W3C (ورلڈ وائیب کونسل) نے DOM تیار کرنا شروع کردیا،

2. DOM کی مختلف سطح

DOM Level 1 是 W3C 于 1998 年 10 月提出的。它由两个模块组成,即 DOM Core 和 DOM HTML。前者提供了基于 XML 的文档的结构图,以便访问和操作文档的任意部分;后者添加了一些 HTML 专用的对象和方法,从而扩展了 DOM Core。

ਧਿਆਨ ਦੇਵੋ ਕਿ DOM ਜਸਟ ਜਾਵਾਸਕ੍ਰਿਪਟ ਦਾ ਨਹੀਂ ਹੈ, ਇਸ ਦੇ ਬਜਾਰ ਵਿੱਚ ਕਈ ਹੋਰ ਭਾਸ਼ਾਵਾਂ ਇਸ ਨੂੰ ਇਮਲਾਂ ਕਰ ਚੁੱਕੀਆਂ ਹਨ। ਫਿਰ ਵੀ, ਵੈਬ ਬਰਾਉਜ਼ਰ ਵਿੱਚ DOM ਇਸ ਦੇ ਰੂਪ ਵਿੱਚ ECMAScript ਦੁਆਰਾ ਇਮਲਾਂ ਕੀਤਾ ਗਿਆ ਹੈ, ਇਹ ਹੁਣ ਜਾਵਾਸਕ੍ਰਿਪਟ ਭਾਸ਼ਾ ਦਾ ਇੱਕ ਬਹੁਤ ਵੱਡਾ ਹਿੱਸਾ ਹੈ。

DOM Level 1 ਇੱਕ ਟੀਚਾ ਹੈ, ਯਾਨੀ ਦਸਤਾਵੇਜ਼ ਦੀ ਸਰਗਰਮੀ ਨੂੰ ਯੋਜਨਾ ਬਣਾਉਣਾ, DOM Level 2 ਦਾ ਟੀਚਾ ਹੋਰ ਵੱਡਾ ਹੈ। ਮੂਲੀਨਾਰ DOM ਨੂੰ ਵਧੇਰੇ ਵਿਸਥਾਰਿਤ ਕਰਨ ਵਿੱਚ ਮਾਉਸ ਅਤੇ ਯੂਜ਼ਰ ਇੰਟਰਫੇਸ ਈਵੈਂਟ (DHTML ਇਸ ਨੂੰ ਵੱਧ ਤੋਂ ਵੱਧ ਸਮਰਥਨ ਕਰਦਾ ਹੈ) ਅਤੇ ਦਾਇਰਾ, ਤਰਚੇ (DOM ਦਸਤਾਵੇਜ਼ ਦੇ ਵਿਸ਼ੇਸ਼ ਪ੍ਰਕਿਰਿਆ) ਦਾ ਸਮਰਥਨ ਦਿੱਤਾ ਗਿਆ ਹੈ, ਅਤੇ CSS (ਕ੍ਰਿਸਟਸ ਸਟਾਈਲ ਸ਼ੈਡ) ਦਾ ਸਮਰਥਨ ਦੇਣ ਲਈ ਆਪਣੇ ਇੰਟਰਫੇਸ ਦੇ ਰੂਪ ਵਿੱਚ ਜੋੜਿਆ ਗਿਆ ਹੈ। ਲੈਵਲ 1 ਵਿੱਚ ਜੋੜੇ ਗਏ ਮੂਲੀਨਾਰ DOM Core ਨੂੰ XML ਨਾਮ ਸਪੇਸ ਦਾ ਸਮਰਥਨ ਦਿੱਤਾ ਗਿਆ ਹੈ。

DOM Level 2 ਨੇ ਕਈ ਨਵੇਂ DOM ਮੌਡਿਊਲਾਂ ਦਾ ਅੰਤਰਭਾਜ ਕੀਤਾ ਹੈ, ਜੋ ਨਵੇਂ ਇੰਟਰਫੇਸ ਟਾਈਪਾਂ ਨੂੰ ਪ੍ਰਬੰਧਨ ਕਰਨ ਲਈ ਹਨ:

  • DOM ਦਰਸ਼ਨ - ਦਸਤਾਵੇਜ਼ ਦੇ ਵੱਖ-ਵੱਖ ਦਰਸ਼ਨਾਂ (ਜਿਵੇਂ ਕਿ CSS ਸਟਾਈਲਿਜ਼ਡ ਤੋਂ ਪਹਿਲਾਂ ਅਤੇ ਸਟਾਈਲਿਜ਼ਡ ਦੇ ਬਾਅਦ) ਨੂੰ ਸ਼ਾਮਲ ਕਰਨ ਦਾ ਵਰਣਨ
  • DOM ਈਵੈਂਟ - ਈਵੈਂਟ ਦੇ ਇੰਟਰਫੇਸ ਦਾ ਵਰਣਨ
  • DOM ਸਟਾਈਲ - ਕ੍ਰਿਸਟਸ ਸਟਾਈਲ ਉੱਤੇ ਅਧਾਰਤ ਪ੍ਰਕਿਰਿਆ ਕਰਨ ਦੇ ਇੰਟਰਫੇਸ ਦਾ ਵਰਣਨ
  • DOM ਤਰਚੇ ਅਤੇ ਦਾਇਰਾ - ਦਸਤਾਵੇਜ਼ ਟ੍ਰੀ ਨੂੰ ਤਰਚ ਕਰਨ ਅਤੇ ਪ੍ਰਕਿਰਿਆ ਕਰਨ ਦੇ ਇੰਟਰਫੇਸ ਦਾ ਵਰਣਨ

DOM Level 3 ਨੇ ਇੱਕ ਸਮਾਨ ਤਰੀਕੇ ਨਾਲ ਦਸਤਾਵੇਜ਼ ਲੋਡ ਕਰਨ ਅਤੇ ਰੱਖਣ ਦੇ ਤਰੀਕੇ (ਜੋ ਨਵੇਂ ਮੌਡਿਊਲ DOM Load and Save ਵਿੱਚ ਸ਼ਾਮਲ ਹਨ) ਅਤੇ ਦਸਤਾਵੇਜ਼ ਪ੍ਰਮਾਣੀਕਰਣ (DOM Validation) ਦੇ ਤਰੀਕੇ ਦਾ ਅੰਤਰਭਾਜ ਕੀਤਾ ਹੈ, ਇਸ ਦੇ ਨਾਲ ਹੀ DOM ਨੂੰ ਹੋਰ ਵਧੇਰੇ ਵਿਸਥਾਰਿਤ ਕੀਤਾ ਹੈ। ਲੈਵਲ 3 ਵਿੱਚ, DOM Core ਨੂੰ ਸਾਰੇ XML 1.0 ਵਿਸ਼ੇਸ਼ਤਾਵਾਂ ਦਾ ਸਮਰਥਨ ਦਿੱਤਾ ਗਿਆ ਹੈ, ਜਿਵੇਂ ਕਿ XML Infoset, XPath ਅਤੇ XML Base。

DOM ਸਿੱਖਣ ਦੇ ਦੌਰਾਨ, ਕਿਸੇ ਨੇ ਜਿਸੇ ਤਰ੍ਹਾਂ ਨਾਲ DOM Level 0 ਦਾ ਹਵਾਲਾ ਦਿੱਤਾ ਹੋ ਸਕਦਾ ਹੈ। ਧਿਆਨ ਦੇਵੋ ਕਿ ਕੋਈ DOM Level 0 ਸਟੈਂਡਰਡ ਨਹੀਂ ਹੈ, ਇਹ ਸਿਰਫ਼ DOM ਦਾ ਇੱਕ ਇਤਿਹਾਸਕ ਸਬੰਧ ਹੈ (DOM Level 0 ਇਹ ਹੈ ਕਿ IE 4.0 ਅਤੇ Netscape Navigator 4.0 ਵਿੱਚ ਸਮਰਥਿਤ ਮੂਲੀਨਾਰ ਡਿਹਟਮਲ ਹੈ).

3. ਹੋਰ DOM

ਇਹ ਹੋਰ ਭਾਸ਼ਾਵਾਂ ਵੀ ਆਪਣੇ ਦੋਮ ਸਟੈਂਡਰਡ ਜਾਰੀ ਕਰ ਚੁੱਕੀਆਂ ਹਨ ਜੋ ਕਿ DOM Core ਅਤੇ DOM HTML ਤੋਂ ਇਲਾਵਾ ਹਨ। ਇਹ ਸਾਰੀਆਂ ਭਾਸ਼ਾਵਾਂ XML ਉੱਤੇ ਅਧਾਰਤ ਹਨ, ਹਰੇਕ DOM ਨੂੰ ਆਪਣੇ ਭਾਸ਼ਾ ਲਈ ਵਿਸ਼ੇਸ਼ ਮੱਥਦਾਂ ਅਤੇ ਇੰਟਰਫੇਸ ਜੋੜਦੇ ਹਨ:

  • اسکالبل ویکٹر لینگواژ (SVG) 1.0
  • نمبرک مارک آپ (MathML) 1.0
  • سمپاچ مالٹیمی میچ کاا لینگواژ (SMIL)

توضیح:اگر آپ کاا مزید معلومات سیکھنا چاہتااں تو کریپ کاا ڈیوائس بھیجئے SMIL 教程SVG 教程

علاوہ ازیں، دیگر زبانوں نے اپنی DOM کاا عمل درآمد بھی کی، مثلاً Mozilla کاا XML کاربر رابط کاا زبان (XUL). لیکن صرف بالا درج زبانوں کو W3C کاا سفارش کردہ معیار قرار دیا گیا ہے.

4. وب بھرائش کار میں DOM کاا مدد

DOM کاا معیار وب بھرائش کاروں میں عمل درآمد ہونے سے پہلے بھی موجود تھا. IE نے پہلی بار DOM کو 5.0 ورژن میں کاا کوشش کی، لیکن واقعتاً تا 5.5 ورژن تک حقیقی DOM کاا مدد نہیں دی، IE 5.5 نے DOM لول 1 کو کاا عمل درآمد کردا رہا. ازآنجاں سے، IE نے نئی DOM کی خصوصیات کو نہیں کاا عمل درآمد کردا رہا.

Netscape تا Netscape 6 (Mozilla 0.6.0) تک DOM کاا مدد دیندا رہا. فی الحال، Mozilla بہترین DOM کاا مدد دیندا رہا، پورا لول 1، تقریباً تمامی لول 2 اور کچھ لول 3 کو کاا عمل درآمد کردا رہا. (Mozilla کاا تیار کاروں کاا مقصد ایک 100% کاا معیار کاا بھرائش کار بنانا ہے، ان کاا کام ناکام نہیں رہا.)

Opera تا 7.0 ورژن تک DOM کاا مدد دیندا رہا، سافری بھی زیادہ تر DOM لول 1 کو کاا عمل درآمد کردا رہا. وہ تقریباً تمامی IE 5.5 کاا سطح تک کاا کاا عمل درآمد کردا رہا، کچھ حالات میں، وہ IE 5.5 سے زیادہ بھی رہا. لیکن، DOM کاا مدد کاا لحاظ سے، تمام بھرائش کار بہت زیادہ Mozilla سے پیچیدہ رہا. نیچل جدول میں عام بھرائش کار کاا DOM کاا مدد کاا درج کیا گیا ہے.

بھرائش کار DOM کی سازگاری
Netscape Navigator 1.0 - 4.x -
Netscape 6.0+ (Mozilla 0.6.0+) لول 1، لول 2، لول 3 (قسمتی)
IE 2.0 - 4.x -
IE 5.0 لول 1 (کمترین)
IE 5.5+ لول 1 (تقریباً تمامی)
Opera 1.0 - 6.0 -
Opera 7.0+ لول 1 (تقریباً تمامی)、لول 2 (قسمتی)
Safari 1.0+/Konqueror ~ 2.0+ لول 1

توضیح:اگر آپ کااڈمائی طور پر DOM کی معلومات کو مزید سیکھنا چاہتااں تو کریپ کااود کاا ڈیوائس بھیجئے HTML DOM 教程XML DOM 教程

BOM

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

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

  • 弹出新的浏览器窗口
  • 移动、关闭浏览器窗口以及调整窗口大小
  • 提供 Web 浏览器详细信息的定位对象
  • 提供用户屏幕分辨率详细信息的屏幕对象
  • 对 cookie 的支持
  • IE extended BOM by adding the ActiveXObject class, which can instantiate ActiveX objects through JavaScript

Due to the lack of related BOM standards, each browser has its own BOM implementation. There are some de facto standards, such as having a window object and a navigation object, but each browser can define its own properties and methods for these objects or other objects.

参阅: