คำถามติดแท็ก javascript

สำหรับคำถามเกี่ยวกับการเขียนโปรแกรมใน ECMAScript (JavaScript / JS) และภาษา / การใช้งานต่างๆ (ไม่รวม ActionScript) แท็กนี้ไม่ค่อยได้ใช้คนเดียว แต่ส่วนใหญ่มักจะเกี่ยวข้องกับแท็ก [node.js], [jquery], [json] และ [html]

11
เหตุการณ์การปรับขนาดหน้าต่างข้ามเบราว์เซอร์ - JavaScript / jQuery
อะไรคือวิธีที่ถูกต้อง (ทันสมัย) สำหรับการแตะที่หน้าต่างเพื่อปรับขนาดเหตุการณ์ที่ทำงานใน Firefox, WebKitและ Internet Explorer และคุณสามารถเปิด / ปิดแถบเลื่อนทั้งสองได้หรือไม่

6
ความแตกต่างระหว่าง setTimeout ทั้งที่มีและไม่มีเครื่องหมายคำพูดและวงเล็บ
ฉันกำลังเรียนรู้ JavaScript และฉันได้เรียนรู้เมื่อเร็ว ๆ นี้เกี่ยวกับเหตุการณ์กำหนดเวลา JavaScript เมื่อฉันเรียนรู้setTimeoutที่W3Schoolsฉันสังเกตเห็นรูปแปลก ๆ ที่ฉันไม่เคยพบเจอมาก่อน พวกเขากำลังใช้เครื่องหมายคำพูดคู่แล้วเรียกใช้ฟังก์ชัน ตัวอย่าง: setTimeout("alertMsg()", 3000); ฉันรู้ว่าอัญประกาศคู่และเดี่ยวใน JavaScript หมายถึงสตริง นอกจากนี้ฉันเห็นว่าฉันสามารถทำเช่นเดียวกัน: setTimeout(alertMsg, 3000); ด้วยวงเล็บมันคือการอ้างอิงโดยไม่ต้องวงเล็บมันคัดลอก เมื่อฉันใช้คำพูดและวงเล็บมันเริ่มบ้า ฉันจะดีใจถ้ามีคนอธิบายให้ฉันฟังถึงความแตกต่างระหว่างการใช้ทั้งสามวิธีsetTimeout: ด้วยวงเล็บ: setTimeout("alertMsg()", 3000); ไม่มีเครื่องหมายคำพูดและวงเล็บ: setTimeout(alertMsg, 3000); และอันที่สามใช้คำพูดเท่านั้น: setTimeout("alertMsg", 3000); หมายเหตุ: เป็นแหล่งที่ดีกว่าสำหรับsetTimeoutการอ้างอิงจะMDN

3
ตัวจับเวลานับถอยหลัง JavaScript ที่ง่ายที่สุดที่เป็นไปได้? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ปรับปรุงคำถามนี้ แค่อยากถามว่าจะสร้างตัวจับเวลาถอยหลังที่ง่ายที่สุดได้อย่างไร จะมีประโยคอยู่บนเว็บไซต์ว่า: "ปิดการลงทะเบียนใน 05:00 นาที!" ดังนั้นสิ่งที่ฉันต้องทำคือการสร้างตัวจับเวลานับถอยหลัง js อย่างง่ายที่เปลี่ยนจาก "05:00" ถึง "00:00" แล้วตั้งค่าใหม่เป็น "05:00" เมื่อสิ้นสุด ก่อนหน้านี้ฉันเคยเจอคำตอบบ้าง แต่พวกเขาดูเหมือนจะรุนแรงเกินไป (Date วัตถุเป็นต้น) สำหรับสิ่งที่ฉันต้องการจะทำ

5
ฉันจะแสดงกล่องโต้ตอบโมดัลใน Redux ที่ดำเนินการแบบอะซิงโครนัสได้อย่างไร
ฉันกำลังสร้างแอพที่จำเป็นต้องแสดงข้อความยืนยันในบางสถานการณ์ สมมติว่าฉันต้องการลบบางอย่างจากนั้นฉันจะส่งการกระทำเช่นdeleteSomething(id)นั้นบางตัวลดจะจับเหตุการณ์นั้นและจะเติมตัวลดการโต้ตอบเพื่อแสดง ข้อสงสัยของฉันเกิดขึ้นเมื่อกล่องโต้ตอบนี้ส่ง ส่วนประกอบนี้จะส่งการกระทำที่เหมาะสมตามการกระทำแรกที่ส่งไปได้อย่างไร ผู้สร้างแอ็คชั่นควรจัดการกับตรรกะนี้หรือไม่? เราสามารถเพิ่มการกระทำภายในตัวลดได้หรือไม่? แก้ไข: เพื่อให้ชัดเจน: deleteThingA(id) => show dialog with Questions => deleteThingARemotely(id) createThingB(id) => Show dialog with Questions => createThingBRemotely(id) ดังนั้นฉันจึงพยายามใช้องค์ประกอบการโต้ตอบใหม่ การแสดง / ซ่อนกล่องโต้ตอบไม่ใช่ปัญหาเพราะสามารถทำได้อย่างง่ายดายในตัวลด สิ่งที่ฉันพยายามระบุก็คือวิธีส่งการกระทำจากด้านขวาตามการกระทำที่เริ่มต้นการไหลทางด้านซ้าย

13
คุณจะแบ่งปันค่าคงที่ในโมดูล NodeJS ได้อย่างไร
ขณะนี้ฉันกำลังทำสิ่งนี้: foo.js const FOO = 5; module.exports = { FOO: FOO }; และใช้มันในbar.js: var foo = require('foo'); foo.FOO; // 5 มีวิธีที่ดีกว่าในการทำเช่นนี้? รู้สึกอึดอัดใจที่จะประกาศค่าคงที่ในวัตถุส่งออก

8
วิธีบันทึกเอาต์พุตของ console.log (object) ไปยังไฟล์
ฉันพยายามใช้JSON.stringify(object)แต่มันไม่ได้ลงไปในโครงสร้างและลำดับชั้นทั้งหมด ในทางกลับกันconsole.log(object)ทำเช่นนั้น แต่ฉันไม่สามารถบันทึกได้ ในconsole.logผลลัพธ์ฉันสามารถขยายเด็กทีละคนและเลือกและคัดลอก / วาง แต่โครงสร้างนั้นใหญ่สำหรับมัน

11
JS: วนซ้ำผลลัพธ์ของ getElementsByClassName โดยใช้ Array.forEach
ฉันต้องการวนซ้ำองค์ประกอบ DOM บางอย่างฉันกำลังทำสิ่งนี้: document.getElementsByClassName( "myclass" ).forEach( function(element, index, array) { //do stuff }); แต่ฉันได้รับข้อผิดพลาด: document.getElementsByClassName ("myclass") forEach ไม่ใช่ฟังก์ชัน ฉันใช้ Firefox 3 ดังนั้นฉันรู้ว่าทั้งสองgetElementsByClassNameและArray.forEachมีอยู่ ใช้งานได้ดี: [2, 5, 9].forEach( function(element, index, array) { //do stuff }); ผลลัพธ์ของgetElementsByClassNameArray คืออะไร? ถ้าไม่มันคืออะไร

11
วิธีรับเส้นทางแบบเต็มของไฟล์ที่เลือกเมื่อเปลี่ยน <input type = 'file'> โดยใช้ javascript, jquery-ajax?
วิธีรับพา ธ เต็มของไฟล์ขณะที่เลือกไฟล์โดยใช้ &lt;input type=‘file’&gt; &lt;input type="file" id="fileUpload"&gt; &lt;script type="text/javascript"&gt; function getFilePath(){ $('input[type=file]').change(function () { var filePath=$('#fileUpload').val(); }); } &lt;/script&gt; แต่ var filePath มีของไฟล์ที่เลือกไม่ได้only name ฉันค้นหาในเน็ต แต่ดูเหมือนว่าด้วยเหตุผลด้านความปลอดภัยเบราว์เซอร์ (FF, chrome) เพียงแค่ให้ชื่อไฟล์ มีวิธีอื่นในการรับเส้นทางแบบเต็มของไฟล์ที่เลือกหรือไม่full path

8
วิธีการใช้ถ้าคำสั่งในแม่แบบ underscore.js?
ฉันใช้ฟังก์ชัน underscore.js templating และได้ทำเทมเพลตเช่นนี้: &lt;script type="text/template" id="gridItem"&gt; &lt;div class="griditem &lt;%= gridType %&gt; &lt;%= gridSize %&gt;"&gt; &lt;img src="&lt;%= image %&gt;" /&gt; &lt;div class="content"&gt; &lt;span class="subheading"&gt;&lt;%= categoryName %&gt;&lt;/span&gt; &lt;% if (date) { %&gt;&lt;span class="date"&gt;&lt;%= date %&gt;&lt;/span&gt;&lt;% } %&gt; &lt;h2&gt;&lt;%= title %&gt;&lt;/h2&gt; &lt;/div&gt; &lt;/div&gt; &lt;/script&gt; อย่างที่คุณเห็นฉันมีคำสั่ง if ในนั้นเพราะโมเดลของฉันทั้งหมดไม่มีพารามิเตอร์วันที่ date is not definedอย่างไรก็ตามวิธีการทำเช่นนี้มันทำให้ผมมีข้อผิดพลาด ดังนั้นฉันจะทำอย่างไรถ้าข้อความภายในเทมเพลต?

7
ผู้ประกอบการที่สามในแม่แบบ AngularJS
คุณจะทำไตรภาคกับ AngularJS (ในแม่แบบ) ได้อย่างไร? มันจะเป็นการดีที่จะใช้บางอย่างในคุณลักษณะ html (คลาสและสไตล์) แทนที่จะสร้างและเรียกใช้ฟังก์ชันของคอนโทรลเลอร์

17
การแปลงขนาดไฟล์เป็นไบต์เป็นสตริงที่มนุษย์สามารถอ่านได้
ฉันใช้ฟังก์ชันนี้เพื่อแปลงขนาดไฟล์เป็นไบต์เป็นขนาดไฟล์ที่มนุษย์สามารถอ่านได้: function getReadableFileSizeString(fileSizeInBytes) { var i = -1; var byteUnits = [' kB', ' MB', ' GB', ' TB', 'PB', 'EB', 'ZB', 'YB']; do { fileSizeInBytes = fileSizeInBytes / 1024; i++; } while (fileSizeInBytes &gt; 1024); return Math.max(fileSizeInBytes, 0.1).toFixed(1) + byteUnits[i]; }; อย่างไรก็ตามดูเหมือนว่านี่จะไม่ถูกต้อง 100% ตัวอย่างเช่น: getReadableFileSizeString(1551859712); // output is "1.4 …




27
แยกชื่อโฮสต์จากสตริง
ฉันต้องการจับคู่เฉพาะรากของ URL ไม่ใช่ URL ทั้งหมดจากสตริงข้อความ ได้รับ: http://www.youtube.com/watch?v=ClkQA2Lb_iE http://youtu.be/ClkQA2Lb_iE http://www.example.com/12xy45 http://example.com/random ฉันต้องการรับอินสแตนซ์สุดท้าย 2 รายการที่แก้ไขเป็นwww.example.comหรือexample.comโดเมน ฉันได้ยินว่า regex ช้าและนี่จะเป็นนิพจน์ regex ที่สองของฉันบนหน้าดังนั้นหากมีอยู่แล้วที่จะทำโดยไม่ต้อง regex แจ้งให้เราทราบ ฉันกำลังค้นหาโซลูชัน JS / jQuery เวอร์ชันนี้
239 javascript  jquery  regex 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.