แปลงอาเรย์หลอกในจาวาสคริปต์เป็นอาร์เรย์จริง
ใน JavaScript อาร์กิวเมนต์ตัวแปรที่ซ่อนอยู่ในฟังก์ชันและชุดองค์ประกอบ (nodelist) ที่ได้รับด้วย getElementsByTagname ไม่ใช่อาร์เรย์จริงและวิธีการเช่น push ไม่สามารถใช้ได้ เมื่อมีความต้องการเช่นนี้พวกเขาสามารถแปลงเป็นอาร์เรย์จริงก่อนเท่านั้น
สำหรับอาร์กิวเมนต์คุณสามารถใช้ array.prototype.slice.call (อาร์กิวเมนต์); เพื่อให้บรรลุวัตถุประสงค์ของการเปลี่ยนใจเลื่อมใส แต่สำหรับผู้ที่เชื่อฟังมันจะไม่ทำงาน มันจะรายงานข้อผิดพลาดใน IE8 และด้านล่าง อาจกล่าวได้ว่าเครื่องยนต์ JS มีข้อ จำกัด บางประการ
ดังนั้นหากคุณต้องการแปลง Nodelist เป็นอาร์เรย์จริงคุณต้องทำกระบวนการเข้ากันได้
การคัดลอกรหัสมีดังนี้:
ฟังก์ชั่น realarray (c) {
พยายาม {
return array.prototype.slice.call (c);
} catch (e) {
var ret = [], i = 0, len = c.length;
สำหรับ (; i <len; i ++) {
ret [i] = (c [i]);
-
ผลตอบแทนผลตอบแทน;
-
-
ฟังก์ชั่นโฮมเพจ JavaScript
การคัดลอกรหัสมีดังนี้:
<! doctype html>
<html>
<head>
<title> การตั้งค่า JavaScript "Set As Home" และ "Favorites" (เข้ากันได้กับเบราว์เซอร์ IE และ Firefox) </title>
<meta charset = "utf-8">
<script type = "text/javascript">
ฟังก์ชัน sethomepage () {
if (document.all) {
/*เช่น*/
document.body.style.behavior = 'url (#เริ่มต้น#หน้าแรก)';
document.body.sethomepage (window.location.href);
} อื่นถ้า (window.side.bar) {
/*ff*/
if (window.netscape) {
พยายาม {
Netscape.security.privilegeManager.enablePrivilege ("UniversalxpConnect");
} catch (e) {
การแจ้งเตือน ("การดำเนินการนี้ถูกปฏิเสธโดยเบราว์เซอร์หากคุณต้องการเปิดใช้งานฟังก์ชั่นนี้โปรดป้อนเกี่ยวกับ: config ในแถบที่อยู่จากนั้นป้อนรายการที่ลงนาม Applets.codebase_principal_support เป็น TRUE");
-
-
var prefs = components.classes ['@mozilla.org/preferences-service;1'.ke.getService (Components.interfaces.nsiprefbranch);
prefs.setcharpref ('browser.startup.homepage', window.location.href);
} อื่น {
/*Chrome หรืออื่น ๆ*/
การแจ้งเตือน ("เบราว์เซอร์ของคุณไม่รองรับการตั้งค่าโฮมเพจอัตโนมัติโปรดใช้เมนูเบราว์เซอร์เพื่อตั้งค่าด้วยตนเอง!");
-
-
</script>
</head>
<body>
<a onclick = "sethomepage ()" href = "JavaScript: void (0);"> ตั้งเป็นหน้าแรก </a>
</body>
</html>
ฟังก์ชันคอลเลกชัน JavaScript
การคัดลอกรหัสมีดังนี้:
<! doctype html>
<html>
<head>
<title> การสาธิต </title>
<meta charset = "utf-8">
<script src = "// code.jquery.com/jquery-1.11.0.min.js"> </script>
<script src = "// code.jquery.com/jquery-migrate-1.2.1.min.js"> </script>
<script type = "text/javascript">
jQuery.fn.addfavorite = function (l, h) {
ส่งคืนสิ่งนี้ click (function () {
var t = jQuery (นี่);
if (jQuery.browser.msie) {
window.external.addfavorite (h, l);
} อื่นถ้า (jQuery.browser.mozilla || jQuery.browser.opera) {
t.attr ("rel", "แถบด้านข้าง");
t.attr ("ชื่อ", l);
t.attr ("href", h);
} อื่น {
การแจ้งเตือน ("โปรดใช้ Ctrl+D เพื่อเพิ่มหน้านี้ในรายการโปรดของคุณ!");
-
-
-
$ (function () {
$ ('#fav'). addfavite (document.title, location.href);
-
</script>
</head>
<body>
<a href = "JavaScript:;" id = "fav"> บันทึกไซต์นี้ </a>
</body>
</html>
จาก jQuery คุณสามารถแก้ไขได้ตามความต้องการของคุณ
JavaScript ตรวจพบว่าองค์ประกอบรองรับรหัสแอตทริบิวต์บางอย่าง
การคัดลอกรหัสมีดังนี้:
ฟังก์ชัน ElementsUpportSattribute (องค์ประกอบ, แอตทริบิวต์) {
var test = document.createElement (องค์ประกอบ);
if (แอตทริบิวต์ในการทดสอบ) {
กลับมาจริง;
} อื่น {
กลับเท็จ;
-
-
การใช้งาน:
การคัดลอกรหัสมีดังนี้:
ถ้า (ElementsUpportsattribute ("textarea", "placeholder") {
} อื่น {
// ทางเลือก
-
สร้างและใช้เนมสเปซ
การคัดลอกรหัสมีดังนี้:
var global = {};
global.namespace = function (str) {
var arr = str.split ('.'), o = global;
สำหรับ (k = (arr [0] == "global")? 1: 0; k <arr.length; k ++) {
o [arr [k]] = o [arr [k]] || {};
o = o [arr [k]];
-
-
วิธีใช้
การคัดลอกรหัสมีดังนี้:
Global.namespace ("Lang");
global.lang.test = function () {
// todo
-
ข้างต้นเป็นเรื่องเกี่ยวกับบทความนี้ฉันหวังว่าคุณจะชอบมัน