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

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

6
วิธีโหลดรีดิวเซอร์แบบไดนามิกสำหรับการแยกรหัสในแอปพลิเคชัน Redux ได้อย่างไร
ฉันจะย้ายไปที่ Redux แอปพลิเคชันของฉันประกอบด้วยชิ้นส่วนจำนวนมาก (หน้าส่วนประกอบ) ดังนั้นฉันต้องการสร้างตัวลดจำนวนมาก ตัวอย่างของ Redux แสดงว่าฉันควรใช้combineReducers()เพื่อสร้างตัวลด เพราะฉันเข้าใจว่าแอปพลิเคชั่น Redux ควรมีร้านค้าหนึ่งแห่งและสร้างขึ้นเมื่อแอปพลิเคชันเริ่มต้นขึ้น เมื่อมีการสร้างร้านค้าฉันควรผ่านอุปกรณ์ลดแรงดันรวม วิธีนี้เหมาะสมถ้าแอปพลิเคชันไม่ใหญ่เกินไป แต่ถ้าฉันสร้างมากกว่าหนึ่งบันเดิล JavaScript? ตัวอย่างเช่นแต่ละหน้าของแอปพลิเคชันมีมัดของตัวเอง ฉันคิดว่าในกรณีนี้ตัวลดที่รวมกันหนึ่งตัวไม่ดี ฉันตรวจสอบแหล่งที่มาของ Redux และพบreplaceReducer()ฟังก์ชั่น ดูเหมือนจะเป็นสิ่งที่ฉันต้องการ ฉันสามารถสร้างตัวลดแบบรวมสำหรับแต่ละส่วนแอปพลิเคชันของฉันและใช้replaceReducer()เมื่อฉันย้ายระหว่างส่วนต่าง ๆ ของแอปพลิเคชัน นี่เป็นวิธีที่ดีหรือไม่?

21
ฉันจะตั้งค่าสไตล์ CSS หลายแบบใน JavaScript ได้อย่างไร
ฉันมีตัวแปร JavaScript ต่อไปนี้: var fontsize = "12px" var left= "200px" var top= "100px" ฉันรู้ว่าฉันสามารถตั้งค่าให้องค์ประกอบของฉันซ้ำแล้วซ้ำอีกเช่นนี้: document.getElementById("myElement").style.top=top document.getElementById("myElement").style.left=left เป็นไปได้ไหมที่จะรวมพวกมันทั้งหมดพร้อมกัน document.getElementById("myElement").style = allMyStyle

22
เปลี่ยนพารามิเตอร์ URL
ฉันมี URL นี้: site.fwx?position=1&archiveid=5000&columns=5&rows=20&sorting=ModifiedTimeAsc สิ่งที่ฉันต้องการคือการสามารถเปลี่ยนค่า 'url param' เป็นสิ่งที่ฉันระบุให้บอกว่า 10 และถ้าไม่มี 'row' ฉันต้องเพิ่มมันเข้าไปที่ส่วนท้ายของ url และเพิ่ม ค่าที่ฉันได้ระบุไว้แล้ว (10)

3
Promise.all: ลำดับของค่าที่แก้ไขแล้ว
มองไปที่MDNดูเหมือนว่าvaluesผ่านไปยังการthen()เรียกกลับของ Promise.all มีค่าตามลำดับของสัญญา ตัวอย่างเช่น: var somePromises = [1, 2, 3, 4, 5].map(Promise.resolve); return Promise.all(somePromises).then(function(results) { console.log(results) // is [1, 2, 3, 4, 5] the guaranteed result? }); ใครสามารถอ้างข้อมูลจำเพาะที่ระบุว่าvaluesควรจะเรียงลำดับใด? PS: การเรียกใช้โค้ดเช่นนั้นแสดงให้เห็นว่าสิ่งนี้ดูเหมือนจะเป็นจริงแม้ว่าจะไม่มีข้อพิสูจน์แน่นอน - มันอาจเป็นเรื่องบังเอิญ

2
JavaScript: อัพโหลดไฟล์
สมมติว่าฉันมีองค์ประกอบนี้ในหน้า: <input id="image-file" type="file" /> สิ่งนี้จะสร้างปุ่มที่อนุญาตให้ผู้ใช้เว็บเพจเลือกไฟล์ผ่านทางกล่องโต้ตอบ "เปิดไฟล์ ... " ในเบราว์เซอร์ สมมติว่าผู้ใช้คลิกปุ่มบอกว่าเลือกไฟล์ในกล่องโต้ตอบจากนั้นคลิกปุ่ม "ตกลง" เพื่อปิดกล่องโต้ตอบ ชื่อไฟล์ที่เลือกจะถูกจัดเก็บใน: document.getElementById("image-file").value ตอนนี้สมมติว่าเซิร์ฟเวอร์จัดการ POST หลายส่วนที่ URL "/ upload / image" ฉันจะส่งไฟล์ไปยัง "/ upload / image" ได้อย่างไร? นอกจากนี้ฉันจะฟังการแจ้งเตือนว่าไฟล์อัพโหลดเสร็จได้อย่างไร

8
ชื่อไฟล์ blob JavaScript ไม่มีลิงก์
คุณจะตั้งชื่อไฟล์ blob ใน JavaScript อย่างไรเมื่อบังคับให้ดาวน์โหลดผ่าน window.location function newFile(data) { var json = JSON.stringify(data); var blob = new Blob([json], {type: "octet/stream"}); var url = window.URL.createObjectURL(blob); window.location.assign(url); } การรันโค้ดด้านบนจะดาวน์โหลดไฟล์ทันทีโดยไม่ต้องรีเฟรชหน้าเว็บที่มีลักษณะดังนี้: bfefe410-8d9c-4883-86c5-d76c50a24a1d ฉันต้องการตั้งชื่อไฟล์เป็นmy-download.jsonแทน

16
jQuery UI Dialog - ไม่มีไอคอนปิด
ฉันใช้ชุดรูปแบบ jQuery 1.10.3 ที่กำหนดเอง ฉันดาวน์โหลดทุกอย่างจากธีมโรลเลอร์และฉันไม่มีเจตนาเปลี่ยนแปลงอะไรเลย ฉันสร้างกล่องโต้ตอบและได้สี่เหลี่ยมสีเทาที่มีไอคอนปิด: ฉันเปรียบเทียบโค้ดที่สร้างบนหน้าของฉัน: <div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix"> <spanid="ui-id-2" class="ui-dialog-title">Title</span> <button class="ui-dialog-titlebar-close"></button> </div> ไปยังรหัสที่สร้างขึ้นในหน้าการสาธิตการโต้ตอบ : <div class="ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix"> <span id="ui-id-1" class="ui-dialog-title">Basic dialog</span> <button class="ui-button ui-widget ui-state-default ui-corner-all ui-button-icon-only ui-dialog-titlebar-close" role="button" aria-disabled="false" title="close"> <span class="ui-button-icon-primary ui-icon ui-icon-closethick"></span> <span class="ui-button-text">close</span> </button> </div> แก้ไข: ส่วนต่าง ๆ ของรหัสถูกสร้างขึ้นโดย …

12
ตรวจจับการหมุนของโทรศัพท์ Android ในเบราว์เซอร์ด้วย JavaScript
ฉันรู้ว่าใน Safari บน iPhone คุณสามารถตรวจจับทิศทางของหน้าจอและเปลี่ยนทิศทางได้โดยฟังonorientationchangeเหตุการณ์และสอบถามwindow.orientationมุม เป็นไปได้ไหมในเบราว์เซอร์บนโทรศัพท์ Android? เพื่อความชัดเจนฉันถามว่าการหมุนของอุปกรณ์ Android สามารถตรวจพบได้โดยJavaScript ที่ทำงานบนหน้าเว็บมาตรฐานหรือไม่ เป็นไปได้ใน iPhone และฉันสงสัยว่ามันสามารถทำได้สำหรับโทรศัพท์ Android

13
Chrome ไม่ได้ลบคุกกี้เซสชัน
ฉันกำลังพยายามตั้งค่าคุกกี้เซสชันในจาวาสคริปต์เช่นนี้: document.cookie = 'name=alex; path=/' แต่ Chrome จะไม่ลบแม้ว่าฉันจะออกจากเบราว์เซอร์และเปิดอีกครั้ง ฉันตรวจสอบใน Firefox และ Opera และทั้งสองทำงานตามที่ต้องการ - พวกเขาลบคุกกี้เซสชันเมื่อออกจากเบราว์เซอร์ Chrome เพิ่งเพิกเฉยกฎการหมดอายุหรือไม่ ฉันตรวจสอบในหลายระบบปฏิบัติการและพบว่าคุกกี้เซสชันถูกลบออกจาก Chrome ใน Windows XP และ Ubuntu แต่ไม่ใช่ใน Mac OSX Lion

7
เมื่อใดจึงจะถือว่าเป็นปฏิปักษ์ต่อคำสัญญา?
ฉันได้ดูที่สัญญาคำถามที่พบบ่อยนกชนิดหนึ่งในสิ่งที่มันกล่าวว่า.then(success, fail)เป็น antipattern ฉันไม่ค่อยเข้าใจคำอธิบายสำหรับลองและจับ เกิดอะไรขึ้นกับสิ่งต่อไปนี้ some_promise_call() .then(function(res) { logger.log(res) }, function(err) { logger.log(err) }) ดูเหมือนว่าตัวอย่างจะแนะนำสิ่งต่อไปนี้เป็นวิธีที่ถูกต้อง some_promise_call() .then(function(res) { logger.log(res) }) .catch(function(err) { logger.log(err) }) ความแตกต่างคืออะไร?

3
เข้าถึงตัวแปรที่อยู่นอกขอบเขตของ Handlebars.js แต่ละลูป
ฉันมีแม่แบบ handlebars.js แบบนี้: {{externalValue}} <select name="test"> {{#each myCollection}} <option value="{{id}}">{{title}} {{externalValue}}</option> {{/each}} </select> และนี่คือผลลัพธ์ที่สร้างขึ้น: myExternalValue <select name="test"> <option value="1">First element </option> <option value="2">Second element </option> <option value="3">Third element </option> </select> ตามที่คาดไว้ฉันสามารถเข้าถึงidและtitleฟิลด์ของทุกองค์ประกอบของmyCollectionเพื่อสร้างตัวเลือกของฉัน และนอกการเลือกexternalValueตัวแปรของฉันจะถูกพิมพ์อย่างถูกต้อง ("myExternalValue") น่าเสียดายที่ในตัวเลือก 'ข้อความexternalValueค่าจะไม่ถูกพิมพ์ออกมา คำถามของฉันคือฉันจะเข้าถึงตัวแปรนอกขอบเขตของแฮนด์บาร์แต่ละอันจากภายในลูปได้อย่างไร

13
จะรับค่าของฟิลด์อินพุตโดยใช้ ReactJS ได้อย่างไร?
ฉันมีองค์ประกอบการตอบสนองต่อไปนี้: export default class MyComponent extends React.Component { onSubmit(e) { e.preventDefault(); var title = this.title; console.log(title); } render(){ return ( ... <form className="form-horizontal"> ... <input type="text" className="form-control" ref={(c) => this.title = c} name="title" /> ... </form> ... <button type="button" onClick={this.onSubmit} className="btn">Save</button> ... ); } }; คอนโซลกำลังให้ฉันundefined- ความคิดใด ๆ ที่เกิดขึ้นกับรหัสนี้

6
eslint: ข้อผิดพลาดในการแยกวิเคราะห์ข้อผิดพลาด: คำหลัก 'const' ถูกสงวนไว้
ฉันได้รับข้อผิดพลาดนี้จาก ESLint: error Parsing error: The keyword 'const' is reserved จากรหัสนี้: const express = require('express'); const app = express(); const _ = require('underscore'); ฉันลองลบแล้ว node_modulesและติดตั้งแพ็กเกจ npm ทั้งหมดใหม่ (ตามที่แนะนำที่นี่ ) แต่ไม่มีประโยชน์


15
วิธีการวนซ้ำอาร์เรย์ที่มีวัตถุและเข้าถึงคุณสมบัติของพวกเขา
ฉันต้องการวนรอบวัตถุที่มีอยู่ในอาร์เรย์และเปลี่ยนคุณสมบัติของแต่ละอัน ถ้าฉันทำสิ่งนี้: for (var j = 0; j < myArray.length; j++){ console.log(myArray[j]); } คอนโซลควรแสดงทุกวัตถุในอาร์เรย์ใช่ไหม แต่ในความเป็นจริงมันจะแสดงเฉพาะวัตถุแรก ถ้าฉันบันทึกล็อกอาร์เรย์นอกลูปวัตถุทั้งหมดจะปรากฏขึ้น อย่างไรก็ตามนี่คือปัญหาต่อไป ฉันจะเข้าถึงตัวอย่างเช่น Object1.x ในอาร์เรย์โดยใช้ลูปได้อย่างไร for (var j = 0; j < myArray.length; j++){ console.log(myArray[j.x]); } ส่งคืน "ไม่ได้กำหนด" บันทึกของคอนโซลนอกลูปอีกครั้งบอกฉันว่าวัตถุทั้งหมดมีค่าสำหรับ "x" ฉันจะเข้าถึงคุณสมบัติเหล่านี้ในลูปได้อย่างไร ฉันแนะนำที่อื่นให้ใช้อาร์เรย์แยกต่างหากสำหรับคุณสมบัติแต่ละอย่าง แต่ฉันต้องการให้แน่ใจว่าฉันหมดถนนสายนี้ก่อน ขอบคุณ!

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