ถามคำถามหนึ่ง:
การคัดลอกรหัสมีดังนี้:
<ภาษาสคริปต์ = "JavaScript">
<script type = "text/javascript">
<script>
การใช้แท็กทั้งสามนี้แตกต่างกันอย่างไร?
แม้ว่าฉันจะใช้มัน แต่ฉันก็ไม่ได้คิดอย่างระมัดระวัง ที่นี่ฉันจะอธิบายอย่างละเอียด
ตรวจสอบข้อมูลบางอย่างส่วนใหญ่เป็นเพราะปัญหาการสนับสนุนเบราว์เซอร์ ทั้งประเภทและคุณสมบัติภาษาสามารถใช้เพื่อระบุประเภทของสคริปต์ในแท็ก <script> แอตทริบิวต์ภาษาได้รับการวิพากษ์วิจารณ์ในมาตรฐาน HTML และ XHTML ซึ่งสนับสนุนการใช้แอตทริบิวต์ประเภท น่าเสียดายที่ค่าของคุณสมบัติทั้งสองนี้แตกต่างกัน
คุณอาจเห็นค่าภาษา vbscript (ข้อความ/vbscript สำหรับประเภท) เป็นครั้งคราวซึ่งระบุว่ารหัสสคริปต์ที่มีอยู่นั้นเขียนไว้ในสคริปต์พื้นฐานของ Microsoft
ด้วย JavaScript คุณยังสามารถใช้ค่า "JavaScript 1.1" ของภาษาซึ่งระบุว่าคำสั่งสคริปต์ที่รวมอยู่นั้นสามารถประมวลผลได้โดย NetScape 3.0 หรือใหม่กว่า NetScape 2.0 รองรับ JavaScript 1.0 เท่านั้นและไม่สามารถจัดการสคริปต์ที่ทำเครื่องหมายไว้ว่า "JavaScript 1.1"
เพื่อให้แน่ใจว่าโปรแกรมการเขียนสคริปต์สามารถดำเนินการได้ตามปกติเว้นแต่คุณจะใช้กลไก VBScript และ Script Encoder ที่ได้รับการสนับสนุนโดย IE เท่านั้นแอตทริบิวต์ "ประเภท" ของแท็กสคริปต์ควรตั้งค่าเป็น "JavaScript" และไม่ได้ตั้งค่าแอตทริบิวต์
แต่ละเบราว์เซอร์รองรับทั้ง "ประเภท" และ "ภาษา" คุณลักษณะของตัวเอง แต่การรับรู้ประเภทภาษาสคริปต์และการสนับสนุนนั้นแตกต่างกันสำหรับการตั้งค่า:
เมื่อ "พิมพ์" และ "ภาษา" มีอยู่ในเวลาเดียวกันเบราว์เซอร์ทั้งหมดจะรับรู้ประเภทสคริปต์ภายในแอตทริบิวต์ "ประเภท";
ในหมู่พวกเขาเบราว์เซอร์ IE สนับสนุนการติดฉลากภาษาสคริปต์ JScript และ VBScript และการเข้ารหัสสคริปต์เข้ารหัส
Firefox Chrome Safari Opera มีความอดทนที่ไม่สอดคล้องกันสำหรับการระบุเฉพาะของค่าแอตทริบิวต์ "ประเภท" เมื่อเทียบกับ Chrome Safari การตรวจสอบความถูกต้องของค่าแอตทริบิวต์นั้นผ่อนคลายมากขึ้นและ Firefox นั้นเข้มงวดที่สุด
ในการเปรียบเทียบความอดทนต่อการรับรู้ถึงค่าแอตทริบิวต์ "ภาษา" Chrome Safari ยังคงเป็นเบราว์เซอร์ทั้งหมดเช่นที่เข้มงวดที่สุดและ Firefox ก็เหมือนกับ Opera;
ในการเปรียบเทียบการเข้ารหัสภาษามีเพียง IE เท่านั้นที่รองรับ JScript.encoder และ VBScript.encoder การตั้งค่าประเภท Firefox Chrome Safari ไม่รองรับและในโอเปร่าค่าคุณสมบัตินี้จะถูกกำหนดไว้ที่ภาษาสคริปต์ JavaScript เริ่มต้นมีค่าเอาต์พุตเท่านั้น
การคัดลอกรหัสมีดังนี้:
<ภาษาสคริปต์ = "JavaScript">
ฟังก์ชัน A () {
b = "a";
-
a ();
การแจ้งเตือน (b);
</script>
มีปัญหากับตัวแปรแม้ว่าคุณจะประกาศตัวแปรในฟังก์ชันดังกล่าวข้างต้นมันจะกลายเป็นตัวแปรทั่วโลก
จะมีปัญหาถ้าคุณประกาศด้วย var
การคัดลอกรหัสมีดังนี้:
<ภาษาสคริปต์ = "JavaScript">
ฟังก์ชัน A () {
var b = "a";
ลบ B;
การแจ้งเตือน (b);
-
a ();
</script>
ผลลัพธ์จะยังคงปรากฏขึ้น
เพื่อให้แน่ใจว่าโปรแกรมการเขียนสคริปต์สามารถดำเนินการได้ตามปกติเว้นแต่คุณจะใช้กลไก VBScript และ Script Encoder ที่ได้รับการสนับสนุนโดย IE เท่านั้นแอตทริบิวต์ "ประเภท" ของแท็กสคริปต์ควรตั้งค่าเป็น "JavaScript" และไม่ได้ตั้งค่าแอตทริบิวต์