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

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

6
eval () และ Function ใหม่ () เหมือนกันหรือไม่?
ฟังก์ชั่นทั้งสองนี้ทำสิ่งเดียวกันเบื้องหลังหรือไม่? (ในฟังก์ชันคำสั่งเดียว) var evaluate = function(string) { return eval('(' + string + ')'); } var func = function(string) { return (new Function( 'return (' + string + ')' )()); } console.log(evaluate('2 + 1')); console.log(func('2 + 1'));

23
การนับคำในสตริง
ฉันพยายามนับคำในข้อความด้วยวิธีนี้: function WordCount(str) { var totalSoFar = 0; for (var i = 0; i < WordCount.length; i++) if (str(i) === " ") { // if a space is found in str totalSoFar = +1; // add 1 to total so far } totalsoFar += 1; // add 1 to totalsoFar …
93 javascript 

9
ใน Angular 2 จะตรวจสอบได้อย่างไรว่า <ng-content> ว่างหรือไม่
สมมติว่าฉันมีส่วนประกอบ: @Component({ selector: 'MyContainer', template: ` &lt;div class="container"&gt; &lt;!-- some html skipped --&gt; &lt;ng-content&gt;&lt;/ng-content&gt; &lt;span *ngIf="????"&gt;Display this if ng-content is empty!&lt;/span&gt; &lt;!-- some html skipped --&gt; &lt;/div&gt;` }) export class MyContainer { } ตอนนี้ฉันต้องการแสดงเนื้อหาเริ่มต้นบางส่วนหาก&lt;ng-content&gt;สำหรับส่วนประกอบนี้ว่างเปล่า มีวิธีง่ายๆในการดำเนินการนี้โดยไม่ต้องเข้าถึง DOM โดยตรงหรือไม่?

9
วิธีบีบอัดภาพผ่าน Javascript ในเบราว์เซอร์?
TL; DR; มีวิธีบีบอัดรูปภาพ (ส่วนใหญ่เป็น jpeg, png และ gif) โดยตรงทางฝั่งเบราว์เซอร์ก่อนที่จะอัปโหลดหรือไม่? ฉันค่อนข้างมั่นใจว่า JavaScript สามารถทำได้ แต่ฉันไม่สามารถหาวิธีที่จะบรรลุมันได้ นี่คือสถานการณ์ทั้งหมดที่ฉันต้องการนำไปใช้: ผู้ใช้ไปที่เว็บไซต์ของฉันและเลือกรูปภาพผ่านinput type="file"องค์ประกอบ ภาพนี้เรียกดูผ่าน JavaScript เราทำการตรวจสอบบางอย่างเช่นรูปแบบไฟล์ที่ถูกต้องขนาดไฟล์สูงสุดเป็นต้น หากทุกอย่างเรียบร้อยจะมีการแสดงภาพตัวอย่างบนหน้า ผู้ใช้สามารถดำเนินการขั้นพื้นฐานบางอย่างเช่นหมุนภาพ 90 ° / -90 °ครอบตัดตามอัตราส่วนที่กำหนดไว้ล่วงหน้า ฯลฯ หรือผู้ใช้สามารถอัปโหลดภาพอื่นและกลับไปที่ขั้นตอนที่ 1 เมื่อผู้ใช้พอใจภาพที่แก้ไขจะถูกบีบอัดและ "บันทึก" ไว้ในเครื่อง (ไม่ได้บันทึกลงในไฟล์ แต่อยู่ในหน่วยความจำ / หน้าของเบราว์เซอร์) - ผู้ใช้กรอกแบบฟอร์มด้วยข้อมูลเช่นชื่ออายุ ฯลฯ ผู้ใช้คลิกที่ปุ่ม "เสร็จสิ้น" จากนั้นแบบฟอร์มที่มีข้อมูล + รูปภาพที่บีบอัดจะถูกส่งไปยังเซิร์ฟเวอร์ (ไม่มี AJAX) กระบวนการทั้งหมดจนถึงขั้นตอนสุดท้ายควรทำในฝั่งไคลเอ็นต์และควรเข้ากันได้กับ Chrome และ Firefox, …

10
Node.js console.log เทียบกับ console.info
ประโยชน์ของการใช้console.logvs console.infoคืออะไร? หรือคำสั่งคอนโซลอื่น ๆ สำหรับเรื่องนั้นหรือไม่? console.info("info"); console.error("error"); console.warn("warn"); เทียบกับ console.log("log"); ฉันคิดว่ามันอาจเปลี่ยนสีของผลลัพธ์หรือเชื่อมต่อป้ายกำกับบางประเภท แต่ดูเหมือนว่าทั้งหมดจะทำในสิ่งเดียวกัน และตามเอกสารที่นี่: https://nodejs.org/api/console.html#console_console_info_data ดูเหมือนพวกเขาทั้งหมดจะทำเช่นเดียวกับ console.log

10
ทำไม nodelist ไม่มี forEach?
ฉันกำลังทำงานกับสคริปต์สั้น ๆ เพื่อเปลี่ยน&lt;abbr&gt;ข้อความภายในขององค์ประกอบ แต่พบว่าnodelistไม่มีforEachวิธีการ ฉันรู้ว่านั่นnodelistไม่ได้สืบทอดมาArrayแต่ดูเหมือนforEachจะเป็นวิธีที่มีประโยชน์หรือไม่ มีปัญหาการใช้งานโดยเฉพาะอย่างยิ่งผมไม่ได้ตระหนักถึงการป้องกันที่เพิ่มforEachไปnodelist? หมายเหตุ: ฉันทราบว่า Dojo และ jQuery ทั้งคู่มีforEachรูปแบบบางอย่างสำหรับ nodelists ของพวกเขา ฉันไม่สามารถใช้ได้เนื่องจากข้อ จำกัด

7
รับ URL ปัจจุบันจาก IFRAME
มีวิธีง่ายๆในการรับ URL ปัจจุบันจาก iframe หรือไม่? ผู้ชมจะผ่านหลายไซต์ ฉันเดาว่าฉันจะใช้บางอย่างในจาวาสคริปต์
93 javascript  url  iframe 

13
เฉพาะใน Firefox“ การโหลดล้มเหลวสำหรับ <script> พร้อมแหล่งที่มา”
ฉันต้องการรวมแบบฟอร์ม Marketo เข้ากับเว็บไซต์ที่มีอยู่บน yii framework รหัสของฉันใช้ได้กับทุกเบราว์เซอร์ยกเว้น Firefox ตัดตอนมาจากรหัสของฉัน: $('#button').click(function () { var formData = { 'Email': $('#UserInfo_email').val(), 'FirstName': $('#UserInfo_first_name').val(), 'LastName': $('#UserInfo_last_name').val(), }; MktoForms2.loadForm('//app-ab23.marketo.com', mcId, formId, function (form) { var myForm = MktoForms2.allForms()[0]; myForm.addHiddenFields(formData); myForm.onSuccess(function (values, followUpUrl) { return false; }); myForm.submit(); }); }); ฉันได้รับข้อผิดพลาดใน Firefox พร้อมข้อความเท่านั้น การโหลดล้มเหลวสำหรับ &lt;script&gt; ที่มีแหล่งที่มา“ http://app-ab23.marketo.com/index.php/form/getForm?munchkinId=1111&amp;form=1111&amp;url=http%3A%2F%2Fblox.dev%2Fwizard%2Fmap&amp;callback= …

4
บังคับใช้โหมดการวางแนว "แนวนอน"
ฉันพยายามบังคับใช้โหมด "แนวนอน" สำหรับแอปพลิเคชันของฉันเนื่องจากแอปพลิเคชันของฉันไม่ได้ออกแบบมาสำหรับโหมด "แนวตั้ง" ฉันจะทำเช่นนั้นได้อย่างไร?

4
ส่วนขยายของ Chrome: ทำให้ทำงานได้ทุกครั้งที่โหลดหน้าเว็บ
ฉันต้องการสร้างส่วนขยายของ Chrome ที่เรียกใช้สคริปต์บางส่วนหลังจากโหลดหนึ่งหน้าฉันไม่แน่ใจว่าฉันต้องใช้ตรรกะนี้ในหน้าพื้นหลังหรืออาจเป็นที่อื่นได้ความช่วยเหลือใด ๆ ที่นี่จะได้รับการชื่นชมอย่างมาก


3
เหตุใด 'instanceof' ใน TypeScript จึงให้ข้อผิดพลาด "'Foo' หมายถึงประเภทเท่านั้น แต่ถูกใช้เป็นค่าที่นี่"?
ฉันเขียนโค้ดนี้ interface Foo { abcdef: number; } let x: Foo | string; if (x instanceof Foo) { // ... } แต่ TypeScript ทำให้ฉันมีข้อผิดพลาดนี้: 'Foo' only refers to a type, but is being used as a value here. เหตุใดจึงเกิดขึ้น ฉันคิดว่าinstanceofสามารถตรวจสอบได้ว่าค่าของฉันมีประเภทที่กำหนดหรือไม่ แต่ดูเหมือนว่า TypeScript จะไม่ชอบสิ่งนี้


9
วิธีทำเทียบเท่า LINQ SelectMany () ใน javascript
น่าเสียดายที่ฉันไม่มี JQuery หรือ Underscore มีแค่ javascript ล้วน ๆ (เข้ากันได้กับ IE9) ฉันต้องการเทียบเท่ากับ SelectMany () จากฟังก์ชัน LINQ // SelectMany flattens it to just a list of phone numbers. IEnumerable&lt;PhoneNumber&gt; phoneNumbers = people.SelectMany(p =&gt; p.PhoneNumbers); ฉันทำมันได้ไหม? แก้ไข: ขอบคุณสำหรับคำตอบฉันได้ผล: var petOwners = [ { Name: "Higa, Sidney", Pets: ["Scruffy", "Sam"] }, { Name: "Ashkenazi, …
93 javascript  c# 

28
แปลงตัวเลขเป็นคำด้วย JavaScript
ฉันกำลังสร้างรหัสที่แปลงจำนวนเงินที่กำหนดให้เป็นคำนี่คือสิ่งที่ฉันได้รับหลังจาก googling แต่ฉันคิดว่ามันเป็นรหัสที่ยาวไปหน่อยเพื่อให้ทำงานง่ายๆ นิพจน์ทั่วไปสองนิพจน์และสองforลูปฉันต้องการสิ่งที่ง่ายกว่านี้ ฉันพยายามทำให้สั้นที่สุด และจะโพสต์สิ่งที่ฉันคิดขึ้นมา ข้อเสนอแนะใด ๆ ? var th = ['','thousand','million', 'billion','trillion']; var dg = ['zero','one','two','three','four', 'five','six','seven','eight','nine']; var tn = ['ten','eleven','twelve','thirteen', 'fourteen','fifteen','sixteen', 'seventeen','eighteen','nineteen']; var tw = ['twenty','thirty','forty','fifty', 'sixty','seventy','eighty','ninety']; function toWords(s) { s = s.toString(); s = s.replace(/[\, ]/g,''); if (s != parseFloat(s)) return 'not a number'; var x …
93 javascript 

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