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

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

20
วิธีการสร้างปลั๊กอิน jQuery ด้วยวิธีการ?
ฉันกำลังพยายามเขียนปลั๊กอิน jQuery ที่จะให้ฟังก์ชัน / วิธีการเพิ่มเติมไปยังวัตถุที่เรียกมัน บทเรียนทั้งหมดที่ฉันอ่านทางออนไลน์ (เรียกดูในช่วง 2 ชั่วโมงที่ผ่านมา) รวมถึงวิธีการเพิ่มตัวเลือก แต่ไม่รวมถึงฟังก์ชั่นเพิ่มเติม นี่คือสิ่งที่ฉันต้องการทำ: // จัดรูปแบบ div ให้เป็นคอนเทนเนอร์ข้อความโดยเรียกใช้ปลั๊กอินสำหรับ div นั้น $("#mydiv").messagePlugin(); $("#mydiv").messagePlugin().saySomething("hello"); หรือบางสิ่งบางอย่างตามสายเหล่านั้น นี่คือสิ่งที่ทำให้ฉันเดือดร้อน: ฉันเรียกใช้ปลั๊กอินจากนั้นฉันเรียกใช้ฟังก์ชันที่เกี่ยวข้องกับปลั๊กอินนั้น ฉันไม่สามารถหาวิธีทำสิ่งนี้ได้และฉันเคยเห็นปลั๊กอินจำนวนมากทำมาก่อน นี่คือสิ่งที่ฉันมีสำหรับปลั๊กอิน: jQuery.fn.messagePlugin = function() { return this.each(function(){ alert(this); }); //i tried to do this, but it does not seem to work jQuery.fn.messagePlugin.saySomething = function(message){ $(this).html(message); } …

4
ฉันจะทำให้ Knockout JS ไปยัง data-bind บน keypress แทนการสูญเสียโฟกัส
ตัวอย่างของสิ่งที่น่าพิศวง jsทำงานเมื่อคุณแก้ไขฟิลด์และกด TAB ข้อมูล viewmodel และด้วยเหตุนี้ข้อความด้านล่างของฟิลด์จึงถูกอัพเดต ฉันจะเปลี่ยนรหัสนี้เพื่อให้ข้อมูลมุมมองโมเดลได้รับการอัปเดตทุกปุ่มกดได้อย่างไร <!doctype html> <html> <title>knockout js</title> <head> <script type="text/javascript" src="js/knockout-1.1.1.debug.js"></script> <script type="text/javascript"> window.onload= function() { var viewModel = { firstName : ko.observable("Jim"), lastName : ko.observable("Smith") }; viewModel.fullName = ko.dependentObservable(function () { return viewModel.firstName() + " " + viewModel.lastName(); }); ko.applyBindings(viewModel); } </script> </head> <body> …

3
ทำไม parseInt (8,3) == NaN และ parseInt (16,3) == 1
ฉันกำลังอ่านสิ่งนี้แต่ฉันสับสนกับสิ่งที่เขียนในparseInt ด้วยบทโต้แย้ง radix ทำไมมันจึงเป็นที่parseInt(8, 3)→ NaNและparseInt(16, 3)→ 1? AFAIK 8 และ 16 ไม่ใช่ตัวเลขเบส -3 ดังนั้นparseInt(16, 3)ควรส่งคืนNaNด้วย

3
เหตุใดการเรียกใช้ฟังก์ชันใน Node.js REPL ด้วย) (ใช้งานได้)
เหตุใดจึงเป็นไปได้ที่จะเรียกใช้ฟังก์ชันใน JavaScript เช่นนี้ทดสอบกับ node.js: ~$ node > function hi() { console.log("Hello, World!"); }; undefined > hi [Function: hi] > hi() Hello, World! undefined > hi)( // WTF? Hello, World! undefined > เหตุใดการโทรครั้งสุดท้ายhi)(ทำงาน มันเป็นข้อบกพร่องใน node.js, ข้อผิดพลาดในเครื่องมือ V8, พฤติกรรมที่ไม่ได้กำหนดอย่างเป็นทางการหรือ JavaScript ที่ถูกต้องจริงสำหรับล่ามทั้งหมด?

9
iOS 8 นำคุณสมบัติวิวพอร์ต“ minimal-ui” ออกแล้วมีโซลูชัน“ full full screen” อื่น ๆ หรือไม่?
(นี่เป็นคำถามที่มีหลายส่วนฉันจะพยายามทำให้ดีที่สุดเพื่อสรุปสถานการณ์) ขณะนี้เรากำลังสร้างแอปพลิเคชั่นเว็บที่ตอบสนองได้ (โปรแกรมอ่านข่าว) ที่อนุญาตให้ผู้ใช้ปัดระหว่างเนื้อหาที่แท็บและเลื่อนในแนวตั้งภายในเนื้อหาแต่ละแท็บ วิธีการทั่วไปในการแก้ไขปัญหาคือให้มี wrapper divที่เติมวิวพอร์ตเบราว์เซอร์ตั้งค่าoverflowเป็นhiddenหรือautoจากนั้นเลื่อนในแนวนอนและ / หรือแนวตั้งภายในเบราว์เซอร์ วิธีนี้เป็นวิธีที่ดี แต่มีหนึ่งข้อเสียเปรียบหลัก: ตั้งแต่ความสูงของเอกสารเป็นสิ่งเดียวกับวิวพอร์ตเบราว์เซอร์เบราว์เซอร์บนมือถือจะไม่ซ่อนแถบที่อยู่ / เมนูนำทาง มีคุณสมบัติแฮ็กและวิวพอร์ตจำนวนมากที่ช่วยให้เราได้รับหน้าจออสังหาริมทรัพย์มากขึ้น แต่ไม่มีสิ่งใดที่มีประสิทธิภาพเท่าminimal-ui(แนะนำใน iOS 7.1) ข่าวมาเมื่อวานนี้ว่า iOS 8 beta4 ถูกลบออกminimal-uiจาก Mobile Safari (ดูหัวข้อ Webkit ในiOS 8 Release Notes ) ซึ่งทำให้เราสงสัยว่า: ไตรมาสที่ 1 เป็นไปได้ไหมที่จะซ่อนแถบที่อยู่บน Mobile Safari? เท่าที่เรารู้ว่า iOS 7 ไม่ตอบสนองอีกต่อไปสับนี้แสดงให้เห็นว่าเราต้องอยู่กับพื้นที่หน้าจอขนาดเล็กเว้นแต่ว่าเรานำมาใช้เป็นรูปแบบแนวตั้งหรือใช้งานwindow.scrollTomobile-web-app-capable ไตรมาสที่ 2 มันยังคงเป็นไปได้ไหมที่จะมีประสบการณ์แบบเต็มจอที่อ่อนนุ่มคล้ายกัน? ด้วยซอฟท์เต็มหน้าจอผมหมายถึงโดยไม่ต้องใช้mobile-web-app-capableเมตาแท็ก แอปพลิเคชันเว็บของเราสร้างขึ้นเพื่อให้สามารถเข้าถึงหน้าใดก็ได้สามารถคั่นหน้าหรือแชร์โดยใช้เมนูเบราว์เซอร์ดั้งเดิม โดยการเพิ่มmobile-web-app-capableเราป้องกันผู้ใช้จากการเรียกใช้เมนูดังกล่าว (เมื่อมันถูกบันทึกไว้ในหน้าจอหลัก) ซึ่งสร้างความสับสนและทำให้ผู้ใช้ไม่เป็นปฏิปักษ์ …

10
วิธีการใช้ history.back () ใน angular.js
ฉันมีคำสั่งซึ่งเป็นส่วนหัวของไซต์พร้อมปุ่มย้อนกลับและฉันต้องการให้คลิกเพื่อกลับไปยังหน้าก่อนหน้า ฉันจะทำในลักษณะที่เป็นเหลี่ยมได้อย่างไร ฉันเหนื่อย: <header class="title"> <a class="back" ng-class="icons"><img src="../media/icons/right_circular.png" ng-click="history.back()" /></a> <h1>{{title}}</h1> <a href="/home" class="home" ng-class="icons"><img src="../media/icons/53-house.png" /></a> </header> และนี่คือคำสั่ง js: myApp.directive('siteHeader', function () { return { restrict: 'E', templateUrl: 'partials/siteHeader.html', scope: { title: '@title', icons: '@icons' } }; }); แต่ไม่มีอะไรเกิดขึ้น ผมมองใน API angular.js เกี่ยวกับ$ สถานที่history.back()แต่ไม่พบอะไรเกี่ยวกับปุ่มย้อนกลับหรือ

18
จะทดสอบว่าสตริงนั้นเป็น JSON หรือไม่?
ฉันมีเรียกง่ายๆ AJAX, และเซิร์ฟเวอร์จะกลับทั้งสตริง JSON mysql_error()มีข้อมูลที่เป็นประโยชน์หรือสตริงข้อความข้อผิดพลาดที่ผลิตโดยฟังก์ชั่นของ ฉันจะทดสอบได้อย่างไรว่าข้อมูลนี้เป็นสตริง JSON หรือข้อความแสดงข้อผิดพลาด มันเป็นการดีที่จะใช้ฟังก์ชั่นที่เรียกว่าisJSONเหมือนกับที่คุณสามารถใช้ฟังก์ชั่นinstanceofเพื่อทดสอบว่ามีบางสิ่งที่เป็นอาร์เรย์หรือไม่ นี่คือสิ่งที่ฉันต้องการ: if (isJSON(data)){ //do some data stuff }else{ //report the error alert(data); }
191 javascript  mysql  json 

12
ส่งข้อความไปยังไคลเอ็นต์ที่ระบุพร้อมกับ socket.io และ node.js
ฉันทำงานกับ socket.io และ node.js และจนถึงตอนนี้มันก็ค่อนข้างดี แต่ฉันไม่รู้วิธีส่งข้อความจากเซิร์ฟเวอร์ไปยังไคลเอนต์ที่เฉพาะเจาะจงดังนี้: client.send(message, receiverSessionId) แต่ไม่.send()หรือ.broadcast()วิธีการที่ดูเหมือนจะต้องจัดหาของฉัน สิ่งที่ฉันได้พบว่าเป็นวิธีแก้ปัญหาที่เป็นไปได้คือ.broadcast()วิธีการที่ยอมรับเป็นพารามิเตอร์ที่สองอาร์เรย์ของ SessionIds ที่ไม่ส่งข้อความดังนั้นฉันสามารถผ่านอาร์เรย์ที่มี SessionIds ทั้งหมดที่เชื่อมต่อในขณะนั้นไปยังเซิร์ฟเวอร์ยกเว้นหนึ่ง ฉันต้องการส่งข้อความ แต่ฉันรู้สึกว่าต้องมีทางออกที่ดีกว่า ความคิดใด ๆ

5
แสดง HTML ที่ไม่ใช้ค่า Escape ใน Vue.js
ฉันจะจัดการตีความ HTML ได้อย่างไรในการโยงหนวด ในขณะนี้ตัวแบ่ง ( <br />) จะแสดง / หลบหนี แอป Vue ขนาดเล็ก: var logapp = new Vue({ el: '#logapp', data: { title: 'Logs', logs: [ { status: true, type: 'Import', desc: 'Learn<br />JavaScript', date: '11.11.2015', id: 1 }, { status: true, type: 'Import', desc: 'Learn<br />JavaScript', date: '11.11.2015', id: …
191 javascript  html  vue.js 

9
จะรับตำแหน่ง scrollbar ด้วย Javascript ได้อย่างไร
ฉันพยายามตรวจสอบตำแหน่งของแถบเลื่อนของเบราว์เซอร์ด้วย JavaScript เพื่อตัดสินใจว่ามุมมองปัจจุบันอยู่ที่ไหนในหน้า ฉันเดาว่าฉันต้องตรวจสอบตำแหน่งของนิ้วโป้งบนแทร็กแล้วความสูงของนิ้วโป้งเป็นเปอร์เซ็นต์ของความสูงทั้งหมดของแทร็ก ฉันมีความซับซ้อนเกินจริงหรือ JavaScript มีวิธีแก้ปัญหาที่ง่ายกว่านั้นหรือไม่? ความคิดใด ๆ ที่ชาญฉลาด

9
เป็นไปได้ไหมที่จะเขียนข้อมูลลงไฟล์โดยใช้ JavaScript เท่านั้น
ฉันต้องการเขียนข้อมูลไปยังไฟล์ที่มีอยู่โดยใช้ JavaScript ฉันไม่ต้องการพิมพ์บนคอนโซล ฉันต้องการเขียนข้อมูลabc.txtจริง ฉันอ่านคำถามที่ตอบแล้วจำนวนมาก แต่ทุกที่ที่พิมพ์บนคอนโซล ในบางแห่งพวกเขาได้รับรหัส แต่มันไม่ทำงาน ดังนั้นโปรดใครช่วยฉันได้ว่าจะเขียนข้อมูลลงไฟล์ได้อย่างไร ฉันอ้างถึงรหัส แต่มันไม่ทำงาน: ข้อผิดพลาดในการให้: Uncaught TypeError: คอนสตรัคผิดกฎหมาย บนโครเมี่ยมและ SecurityError: การดำเนินการไม่ปลอดภัย บน Mozilla var f = "sometextfile.txt"; writeTextFile(f, "Spoon") writeTextFile(f, "Cheese monkey") writeTextFile(f, "Onion") function writeTextFile(afilename, output) { var txtFile =new File(afilename); txtFile.writeln(output); txtFile.close(); } ดังนั้นเราสามารถเขียนข้อมูลไปยังไฟล์โดยใช้ Javascript เท่านั้นหรือไม่?
191 javascript  html 

4
ฉันจะกำหนดประเภทขององค์ประกอบ HTML ใน JavaScript ได้อย่างไร
ฉันต้องการวิธีกำหนดประเภทขององค์ประกอบ HTML ใน JavaScript มันมี ID แต่องค์ประกอบเองอาจเป็น a <div>, <form>field, a <fieldset>, ฯลฯ ฉันจะทำสิ่งนี้ได้อย่างไร
191 javascript  dom 

10
วิธีการตั้งค่าเครื่องหมายรูปหมวก (เคอร์เซอร์) ในองค์ประกอบ contenteditable (div)?
ฉันมี HTML ง่ายๆนี้เป็นตัวอย่าง: <div id="editable" contenteditable="true"> text text text<br> text text text<br> text text text<br> </div> <button id="button">focus</button> ฉันต้องการสิ่งที่ง่าย - เมื่อฉันคลิกปุ่มฉันต้องการวางคาเร็ต (เคอร์เซอร์) ไว้ในตำแหน่งเฉพาะใน div ที่แก้ไขได้ จากการค้นหาบนเว็บฉันได้แนบไฟล์ JS ให้กับการคลิกปุ่ม แต่ไม่ได้ผล (FF, Chrome): var range = document.createRange(); var myDiv = document.getElementById("editable"); range.setStart(myDiv, 5); range.setEnd(myDiv, 5); เป็นไปได้ไหมที่จะตั้งคาเร็ตด้วยตนเองเช่นนี้?

15
มีวิธีใดที่ฉันสามารถตรวจสอบว่ามี data data อยู่หรือไม่?
มีวิธีที่ฉันสามารถเรียกใช้ต่อไปนี้: var data = $("#dataTable").data('timer'); var diffs = []; for(var i = 0; i + 1 < data.length; i++) { diffs[i] = data[i + 1] - data[i]; } alert(diffs.join(', ')); เฉพาะในกรณีที่มีคุณลักษณะที่เรียกว่า data-timer บนองค์ประกอบที่มี id ของ #dataTable?
190 javascript  jquery 


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