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

JavaScript (JS) เป็นภาษาสคริปต์ฝั่งไคลเอ็นต์ซึ่งอนุญาตให้โต้ตอบกับผู้ใช้ควบคุมเบราว์เซอร์สื่อสารแบบอะซิงโครนัสและเปลี่ยนแปลงเนื้อหาของเอกสารที่แสดง โดยค่าเริ่มต้น Magento 1 มาพร้อมกับห้องสมุด prototype.js และ Magento 2 มาพร้อมกับ jQuery ใช้แท็ก 'prototype-js' และ 'jquery' สำหรับคำถามเกี่ยวกับไลบรารีเหล่านั้น

5
วิธีเพิ่มไฟล์ JS ในส่วนหน้าสำหรับทุกหน้า
ฉันอ่าน Google Results 3 หน้าเกี่ยวกับวิธีโหลดไฟล์ JS สำหรับทุกหน้าและยังไม่สามารถทำได้ ฉันมีข้อสงสัยสองสามหวังว่าจะมีใครซักคนออกมา ฉันจำเป็นต้องสร้างโมดูลภายในapp/codeด้วยrequirejs-config.jsหรือไม่? หรือฉันสามารถใส่requirejs-config.jsในชุดรูปแบบของฉันแทน? ฉันควรใส่requirejs-config.jsอะไรเข้าไป รหัสควรมีลักษณะอย่างไรใน.jsไฟล์ของฉัน ฉันเห็นว่าคุณไม่สามารถใช้ jQuery document.readyและคุณต้องมีdefine([ ฉันควรใส่define([อะไรเข้าไป หากฉันมีโมดูล jQuery บุคคลที่สามฉันต้องแก้ไขเพื่อให้ทำงานได้หรือไม่ ฉันจำเป็นต้องวาง xml ไว้ที่ไหนสักแห่งเพื่อบอก magento ว่ามีไฟล์ my.js อยู่หรือไม่? ถ้าฉันสร้างโมดูลภายในapp/codeด้วยรหัส js ทั้งหมดที่นั่นมันจะรวมเนื้อหาทั้งหมดในทุกหน้าหรือไม่? ฉันจะบรรลุสิ่งนั้นได้อย่างไร

1
ผลิตภัณฑ์ตัวเลือกราคาไม่ใช่ตัวสร้างวีโอไอพี 1.9.3
ฉันได้อัพเกรดวีโอไอพี 1.9.2.4 to 1.9.3. ฉันพบข้อผิดพลาดต่อไปนี้ในคอนโซลในหน้าผลิตภัณฑ์ TypeError: Product.OptionsPrice is not a constructor var optionsPrice = new Product.OptionsPrice([]);

7
ย้าย Javascript ทั้งหมดรวมถึงก่อนหน้า </body>
ไม่มีใครรู้วิธีการมีแท็กสคริปต์ JS ของ Magento ทั้งหมดเช่น&lt;script type="text/javascript" src="http://sitename.com/js/prototype/prototype.js"&gt;&lt;/script&gt;แสดงออกก่อนปิด&lt;/body&gt;? ฉันเคยลองครั้งนี้มาก่อน แต่ฉันได้รับข้อผิดพลาดซึ่งฉันคิดว่าเป็นไปตามแนวของวิธีการ addJS ที่ไม่สามารถใช้งานได้เมื่อฉันใช้มันอาจเป็นส่วนท้ายในการอ้างอิง

2
การขยาย / ลบล้าง JS ใน Magento 2
Magento2 กำลังใช้ RequireJS สำหรับการโหลดสคริปต์และไม่มีโฟลเดอร์สกินอีกต่อไปฉันจึงติดปัญหา: ฉันจะแทนที่ไฟล์ JS ของโมดูลวีโอไอพีด้วยเวอร์ชันที่แก้ไขของฉันได้อย่างไร ตัวอย่างเช่น - opc-checkout-method.jsซึ่งเป็นของส่วนขยาย Magento_Checkout มันไม่ได้กำหนดไว้ในไฟล์ requirejs-config.js เท่าที่ฉันเห็น ส่วนขยายของฉันถูกโหลดหลังจากMagento_Checkoutดังนั้นข้อมูล requirejs-config.js จะถูกต่อท้ายท้ายไฟล์ requirejs-config หรือฉันควรทำอย่างอื่นโดยไม่เปลี่ยนสคริปต์ทั้งหมด?

10
การผสาน JS และ CSS ไม่ทำงานเมื่อโหมดการผลิต
ฉันอยู่ในโหมดนักพัฒนาซอฟต์แวร์ทุกอย่างยอดเยี่ยมเมื่อฉันเปลี่ยนเป็นโหมดการผลิตตัวเลือกการผสานของ CSS และ JS ดูเหมือนจะถูกเพิกเฉยมันกลับเป็นรายการ css และ js ทั้งหมด นอกจากนี้หน้าผลิตภัณฑ์จะแสดงเฉพาะรูปภาพของผลิตภัณฑ์ในโหมดนักพัฒนาซอฟต์แวร์หลังจากเปลี่ยนเป็นโหมดการผลิตแล้วจะหายไป มีความคิดใดที่จะช่วยฉัน ประเด็นคือฉันกำลังทำ นี่คือสิ่งที่ฉันทำตามลำดับ: bin/magento setup:upgrade bin/magento indexer:reindex bin/magento setup:static-content:deploy bin/magento setup:di:compile bin/magento deploy:mode:set production bin/magento setup:static-content:deploy และก่อนที่จะเริ่มตัวเลือกการรวมคือใช่และฉันอยู่ในโหมดนักพัฒนาซอฟต์แวร์

1
Magento 2: Uncaught TypeError: ไม่สามารถอ่านคุณสมบัติ '*' จากไม่ได้กำหนดใน (section-config.js: 33)
เป็นคำถามที่ซ้ำกันแต่ฉันพบปัญหาเดียวกันขณะเพิ่มผลิตภัณฑ์ &amp; ลบรายการออกจากหน้ารถเข็น ฉันใช้เวลาเกือบหนึ่งวันเพื่อแก้ไขปัญหา แต่ไม่มีโชคหวังว่าจะมีคนช่วยฉันได้ ข้อความแสดงข้อผิดพลาดในคอนโซล: Uncaught TypeError: ไม่สามารถอ่านคุณสมบัติ '*' ของไม่ได้กำหนดใน (section-config.js: 33) แก้ไข: ฉันได้เปิดใช้งานและลบแคชทั้งหมดที่ยังคงมีอยู่

4
Magento 2: requirejs-config.js ในธีมหรือไม่
เป็นไปได้หรือไม่ที่จะรวมrequirejs-config.jsไฟล์ (หรือกำหนดค่า RequireJS) ผ่านธีม Magento? หรือความสามารถที่สงวนไว้สำหรับโมดูล Magento? ข้อมูลdev docs เกี่ยวกับโครงสร้างของธีมนั้นคลุมเครือจนถึงจุดนี้ เอกสาร Dev ไม่ได้พูดถึงสิ่งใด ๆ เกี่ยวกับ RequireJS - อย่างไรก็ตามชุดรูปแบบรวมถึงสิ่งwebที่หมายถึงจาวาสคริปต์สามารถรวมกับพวกเขา หากสามารถรวม javascript เข้ากับธีมนั่นหมายถึงโมดูล RequireJS สามารถรวมกับธีมได้และหากโมดูล RequireJS สามารถรวมกับธีมที่โมดูลนั้นอาจต้องการการกำหนดค่า RequireJS เฉพาะ สมมติฐานที่ไร้เดียงสาของฉันจะเป็นรูปแบบที่จะมีความสามารถนี้ แต่ฉันไม่สามารถหาเอกสารใด ๆ เกี่ยวกับวิธีนี้หรืออื่น ๆ และไม่ได้บ่ายฟรีที่จะใช้รหัสที่จำเป็น spelunking ในrequirejs-config.jsไฟล์ของวีโอไอพีรวมถึง

1
วีโอไอพี 2 มีการใช้ KnockoutJS อย่างไร
ตามการอ่านคร่าวๆของเอกสารประกอบ KnockoutJS การเริ่มต้นมุมมองการทำให้ล้มลงพื้นฐานขั้นพื้นฐานจะมีลักษณะดังนี้ // This is a simple *viewmodel* - JavaScript that defines the data and behavior of your UI function AppViewModel() { this.firstName = "Bert"; this.lastName = "Bertington"; } // Activates knockout.js ko.applyBindings(new AppViewModel()); เช่น - คุณสร้างฟังก์ชั่นจาวาสคริปต์ที่มีวัตถุประสงค์เพื่อใช้เป็นตัวสร้างวัตถุยกตัวอย่างวัตถุจากนั้นส่งวัตถุนั้นไปยังko.applyBindingsวิธีการของวัตถุพิศวงทั่วโลก ( ko) อย่างไรก็ตามใน Magento 2 หากคุณโหลดหน้าเว็บแบ็กเอนด์ด้วย Grid UI Magento จะเริ่มต้น js/core/app.jsโมดูล RequireJS …

2
การตรวจสอบแบบฟอร์มที่กำหนดเอง - Magento
ฉันกำลังพยายามใช้การตรวจสอบแบบฟอร์มที่กำหนดเองใน Magento โดยใช้ jQuery แต่ฉันไม่แน่ใจว่าฉันมีวิธีการที่ถูกต้องหรือไม่ โดยทั่วไปฉันต้องตรวจสอบต่อไปนี้: เฉพาะฟิลด์หมายเลขเท่านั้นที่จะต้องมี. 00 ในการตรวจสอบ 1 ถึง 1.00 ตัวอักษรต้องเป็นตัวพิมพ์ใหญ่ ไม่สามารถมีตัวเลขมากกว่า 9.99 ไม่มีช่องว่างในไฟ ฉันคิดว่าจะใช้ jQuery และได้ตั้งค่าเกี่ยวกับการเขียนบางอย่างเพื่อตรวจสอบแบบฟอร์ม: &lt;script&gt; jQuery(document).ready(function() { jQuery.validator.addMethod("integer", function(value, element) { return this.optional(element) || /^-?\d+$/.test(value); }, "A positive or negative non-decimal number please"); function(field, length) { if (!numericRegex.test(length)) { return false; } return (field.value.length &lt;= …

2
Google CDN jQuery พร้อม Local Fallback ใน Magento Layout XML
ฉันได้ทำสิ่งต่อไปนี้เพื่อรวม jQuery จาก Google CDN ใน Magento: &lt;default&gt; &lt;reference name="head"&gt; &lt;block type="core/text" name="google.cdn.jquery"&gt; &lt;action method="setText"&gt; &lt;text&gt;&lt;![CDATA[&lt;script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"&gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;jQuery.noConflict();&lt;/script&gt;]]&gt; &lt;/text&gt; &lt;/action&gt; &lt;/block&gt; &lt;/reference&gt; &lt;/default&gt; อย่างไรก็ตามเมื่อฉันต้องการนำไปใช้กับทางเลือกในท้องถิ่นซึ่งใช้งานได้ดีฉันปิดท้ายการเพิ่มลงใน. phtml ของฉันเช่น: &lt;script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"&gt;&lt;/script&gt; &lt;script&gt; if (!window.jQuery) { document.write('&lt;script src="/path/to/your/jquery"&gt;&lt;\/script&gt;'); } &lt;/script&gt; มีวิธีที่สง่างามในการทำเช่นนี้ใน local.xmlมากกว่าที่จะผลักทางเลือกเข้าสู่&lt;text&gt;โหนดในขณะที่ฉันกำลังทำอยู่jQuery.noConflict? แก้ไข: เพื่อดึงดูดความสนใจไปยังส่วนอื่น ๆ ของคำถาม - มีโมดูลชุมชนที่มี jQuery ให้คุณหรือไม่? หากพวกเขามี jQuery ในท้องถิ่นก็ไม่เป็นไร …

3
Magento 2 เพิ่มการตรวจสอบคุณสมบัติของผลิตภัณฑ์ที่กำหนดเองจากสคริปต์การติดตั้ง
[ 'type' =&gt; 'int' 'backend' =&gt; '', 'frontend' =&gt; '', 'label' =&gt; 'XXXX' 'input' =&gt; 'text', 'frontend_class' =&gt; 'ตรวจสอบความถูกต้องมากกว่าศูนย์' 'source' =&gt; '', 'global' =&gt; \ Magento \ Eav \ Model \ Entity \ Attribute \ ScopedAttributeInterface :: SCOPE_GLOBAL 'visible' =&gt; จริง 'ต้องใช้' =&gt; จริง 'user_defined' =&gt; false 'default' =&gt; 0, …

2
วิธีการเขียนฟังก์ชั่นวิดเจ็ตใหม่ด้วย mixins Magento 2.1.1
เรามี swatch-renderer.js ในไฟล์นี้มีวิดเจ็ตบางส่วน .... $.widget('mage.SwatchRenderer', { .... /** * @private */ _init: function () { if (this.options.jsonConfig !== '' &amp;&amp; this.options.jsonSwatchConfig !== '') { this._sortAttributes(); this._RenderControls(); } else { console.log('SwatchRenderer: No input data received'); } }, /** * @private */ _sortAttributes: function () { this.options.jsonConfig.attributes = _.sortBy(this.options.jsonConfig.attributes, function (attribute) { …

1
เพราะเหตุใด Magento 2 จึงใช้ RequireJS` map` แทนที่จะเป็น "path"
ในการติดตั้ง RequireJS ของ Magento 2 โมดูลหลักจำนวนมากใช้การกำหนดค่าแบบนี้ map: { '*': { editTrigger: 'mage/edit-trigger', addClass: 'Magento_Translation/add-class' } } ใน RequireJS mapคำสั่งกำหนดค่าอนุญาตให้ผู้พัฒนาสามารถบอก RequireJS ได้ เมื่อคุณโหลดโมดูล X และใช้โมดูล Y แทนที่โมดูล Y ด้วยโมดูล Z - แต่สำหรับโมดูล X เท่านั้น หรือในรหัส map: { 'modulex':{ 'moduley':'modulez' } } mapคุณลักษณะโดยทั่วไปช่วยให้คุณสามารถสลับออกคำจำกัดความโมดูลผ่านการตั้งค่า - ในวีโอไอพีพูดมันเป็นคุณลักษณะโมดูลสำหรับเขียนจาวาสคริปต์ สิ่งที่ไม่ชัดเจนสำหรับฉันคือการใช้ Magento อย่างหนักใน*ฐานะกุญแจสำหรับmapอสังหาริมทรัพย์ map: { '*': { …

3
รับ URL พื้นฐานหรือ URL ไดนามิกในการดูไฟล์ Js หรือ html
ฉันคิดว่ามันจะได้รับ URL แบบไดนามิกในส่วนหน้าถ้าฉันต้องการฉันสามารถกำหนดmage/urlและใช้มันเป็นurl.build('&lt;Modulename&gt;/&lt;controllername&gt;/&lt;action&gt;/') เมื่อฉันลองสิ่งเดียวกันกับแบ็กเอนด์มันก็ไม่ได้ผลตามที่คาดหวัง มันให้ URL ปัจจุบันและต่อท้ายเส้นทางที่ฉันได้รับ ทุกคนสามารถอธิบายวิธีการนี ฉันจำเป็นต้องกำหนด baseUrl ที่ใดที่หนึ่งหรือไม่?

1
Magento 2 minicart, ข้อความต้อนรับ, อื่น ๆ ไม่ทำงานกับเพจแคชถูกปิดใช้งานหลังจากที่ลูกค้าเข้าสู่ระบบ
ด้วยMagento 2.0.4 cache เปิดใช้งานแคชเฉพาะหน้ามากขึ้นทุกอย่างทำงานได้ ถ้าฉันปิดการใช้งานล้างคุกกี้และเข้าสู่ระบบในฐานะลูกค้ามากกว่าผลิตภัณฑ์ในminicartที่ไม่มี ข้อความต้อนรับไม่ทำงานจริง ๆ ฉันต้องเพิ่มผลิตภัณฑ์ลงในรถเข็นจากหน้าผลิตภัณฑ์เพื่อที่จะได้เห็นรถมินิมาร์ท มากกว่าถ้าฉันไปเช็คเอาต์ประเทศจะไม่ปรากฏในที่อยู่สรุป (ที่อยู่จัดส่งเพิ่มในบัญชีของฉันแล้ว) module-customer/view/frontend/web/js/customer-data.jsฉันได้ทำการแก้จุดบกพร่องและดูเหมือนว่าปัญหาจะชี้ไปที่: คุกกี้private_content_versionตั้งอยู่ในและนำมาใช้ในmodule-page-cache/view/frontend/web/js/page-cache.js customer-data.jsดูcustomerData::reloadฟังก์ชั่น ด้วยแคชหน้าปิดการใช้งานข้อมูลไม่ได้โหลดจากเซิร์ฟเวอร์เป็นฟังก์ชั่นdataProvider::getFromServer()ไม่ เมื่อแคชหน้าถูกปิดใช้งานคุกกี้private_content_versionจะไม่อยู่ที่นั่น (page-cache.js ไม่ได้ถูกดำเนินการนอกหลักสูตร) แต่คุกกี้section_data_idsมีเพียง '*' และ 'ข้อความ' =&gt; ว่าง (false หรือ null) เมื่อแคชหน้าถูกเปิดใช้งานจะมีprivate_content_versionและsection_data_idsมีคีย์ที่มีค่าใด: *: null cart: 123 compare-products: 123 customer: 123 directory-data: 123 last-ordered-items: 123 multiplewishlist: 123 review: 123 wishlist: 123 หลังจากที่ฉันเข้าสู่ระบบด้วยการเปิดใช้งานแคชหน้าแดชบอร์ดลูกค้ามีคำขอ ajax เพิ่มเติมอีก 2 คำขอที่โหลดข้อมูล: …

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