タグ付けされた質問 「javascript」

JavaScript(JS)は、ユーザーとの対話、ブラウザの制御、非同期通信、および表示されるドキュメントコンテンツの変更を可能にするクライアント側スクリプト言語です。デフォルトでは、Magento 1にはprototype.jsライブラリが付属し、Magento 2にはjQueryが付属しています。これらのライブラリーに関する質問には、「prototype-js」および「jquery」タグを使用してください。

5
すべてのページのフロントエンドにJSファイルを追加する方法
すべてのページのJSファイルを読み込む方法について、Googleの結果の3ページを読みましたが、まだ実行できません。 いくつか疑問がありますが、誰かがそれらをクリアできることを願っています。 内部app/codeでモジュールを作成する必要がありますrequirejs-config.jsか?またはrequirejs-config.js、代わりにテーマを内部に配置できますか? 中に何を入れrequirejs-config.jsたらいいですか? .jsファイル内のコードはどのように見えますか?jQueryを使用することはできずdocument.ready、define([ 中に何を入れdefine([たらいいですか? サードパーティのjQueryモジュールがある場合、それらを機能させるには編集する必要がありますか? my.jsファイルが存在することをmagentoに伝えるために、xmlをどこかに配置する必要がありますか? 内部app/codeにすべてのjsコードを含むモジュールを作成すると、すべてのページにすべてのものが含まれますか?どうすればそれを達成できますか?


7
JavaScriptのすべてのインクルードを前に移動します</ body>
誰もが知っているがどのようにMagentoののJSスクリプトタグなどのすべてを持っているん&lt;script type="text/javascript" src="http://sitename.com/js/prototype/prototype.js"&gt;&lt;/script&gt;クロージング前にレンダリング&lt;/body&gt;? 私はこれを以前に一度試しましたが、おそらく参照フッターで使用したaddJSメソッドの行に沿ってエラーが発生したと思います。

2
Magento 2でJSを拡張/オーバーライドする
Magento2はスクリプトの読み込みにRequireJSを使用しており、スキンフォルダーがなくなったため、問題が発生しました。 変更したバージョンでMagentoのモジュールJSファイルを置き換えるにはどうすればよいですか? たとえば、Magento_Checkout拡張機能に属するopc-checkout-method.jsです。私が見る限り、それはrequirejs-config.jsファイルで定義されていません。 私の拡張機能はMagento_Checkoutの後にロードされるため、requirejs-config.jsデータは、結果のrequirejs-configファイルの最後に追加されます。 または、スクリプト全体を置き換えることなく、他の方法でそれを行う必要がありますか?

10
Productionモードの場合、マージされた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 開始する前でも、マージオプションはYESであり、開発者モードでした。

1
Magento 2:Uncaught TypeError:(section-config.js:33)で未定義のプロパティ「*」を読み取ることができません
それはだ、重複する質問が、製品を追加すると、カートページから項目を除去しながら、私は同じ問題に直面しています。 私は解決にほぼ1日を費やしましたが、誰かがこれを手伝ってくれることを願っています。 コンソールのエラーメッセージ: Uncaught TypeError:(section-config.js:33)で未定義のプロパティ「*」を読み取ることができません 編集:デプロイを実行しましたが、すべてのキャッシュは削除されたままです。

4
Magento 2:テーマにrequirejs-config.jsがありますか?
requirejs-config.jsMagentoテーマを介してファイルを含める(またはRequireJSを構成する)ことは可能ですか?または、Magentoモジュール専用の機能ですか?テーマ構造上のdevのドキュメントの情報は、このポイントにあいまいです。 開発者ドキュメントではRequireJSについては何も言及していませんが、テーマにはが含まれてwebいるため、javascriptをバンドルできます。JavaScriptをテーマにバンドルできる場合、それはRequireJSモジュールをテーマにバンドルできることを意味し、RequireJSモジュールをテーマにバンドルできる場合、そのモジュールは特定のRequireJS構成を必要とする可能性があります。 私の素朴な仮定はテーマになるだろう、この能力を持っているが、私はこの1つの方法または他の任意のドキュメントを見つけることができていない、とMagentoののに必要なコードの洞窟探検をして過ごすために無料のアフタヌーンいないrequirejs-config.jsファイルを含むを。

1
Magento 2はKnockoutJSバインディングをどのように適用しますか
KnockoutJSドキュメントを非常に大まかに読むと、非常に基本的なKnockoutビューの初期化は次のようになります。 // 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()); つまり、オブジェクトコンストラクターとして使用するjavascript関数を作成し、そこからオブジェクトをインスタンス化し、そのオブジェクトをko.applyBindingsグローバルノックアウトオブジェクトのメソッドに渡します(ko) ただし、Magento 2では、グリッドUIでバックエンドページをロードすると、Magentoはjs/core/app.jsRequireJSモジュールを初期化します /** * Copyright © 2016 Magento. All rights reserved. * See COPYING.txt for license …

2
カスタムフォームの検証-Magento
jQueryを使用してMagentoでカスタムフォーム検証を実装しようとしていますが、正しいメソッドがあるかどうかはわかりません。 基本的に、次のことを検証する必要があります。 1から1.00を検証するには、数値フィールドのみに.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;= parseInt(length, 4)); }, } &lt;/script&gt; 問題は、他の検証フィールドの関数が見つからないことです。

2
MagentoレイアウトXMLのローカルフォールバックを使用したGoogle CDN jQuery
MagentoでGoogle CDNのjQueryを含めるために以下を実行しました。 &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を使用している場合、Google CDNを使用している場合はそれで問題ありません。これがない場合は、作成したいと思います。 自分でブートストラップせずにこれを処理する拡張機能はありますか?

3
Magento 2はインストールスクリプトからカスタム製品属性検証を追加します
[ 「タイプ」=&gt;「int」、 'backend' =&gt; ''、 'frontend' =&gt; ''、 'label' =&gt; 'XXXX'、 「入力」=&gt;「テキスト」、 'frontend_class' =&gt; 'ゼロより大きい検証'、 'source' =&gt; ''、 'global' =&gt; \ Magento \ Eav \ Model \ Entity \ Attribute \ ScopedAttributeInterface :: SCOPE_GLOBAL、 'visible' =&gt; true、 '必須' =&gt; true、 'user_defined' =&gt; false、 'default' =&gt; 0、 'searchable' =&gt; false、 'filterable' …

2
ミックスイン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が `path`ではなくRequireJS` map`を使用する理由
Magento 2のRequireJS実装では、多くのコアモジュールがこのような構成を使用します map: { '*': { editTrigger: 'mage/edit-trigger', addClass: 'Magento_Translation/add-class' } } RequireJSでは、map構成ディレクティブにより、開発者はRequireJSに通知できます モジュールXをロードし、モジュールYを使用する場合、モジュールYをモジュールZに置き換えます- ただし、モジュールXのみ または、コードで map: { 'modulex':{ 'moduley':'modulez' } } このmap機能により、基本的に設定を介してモジュール定義を交換できます。Magentoで言えば、これはjavascriptのモジュール書き換え機能です。 ただし、Magento *がmapプロパティのキーとして多用しているのは明らかではありません。 map: { '*': { editTrigger: 'mage/edit-trigger', addClass: 'Magento_Translation/add-class' } } *基本的には、このマッピングを行う*言うすべてのモジュール、およびその使用目的のケースでは、ベースモジュールエイリアシング提供、より具体的なモジュールに変更することができます。 ただし、MagentoはRequireJSのpathspropertyの代わりとして使用するようです。すなわち、Magentoは次のことで同じことを達成できたようです paths: { 'editTrigger': 'mage/edit-trigger', 'addClass': 'Magento_Translation/add-class', } そして、必要なときに特定のマッピングを選択的に行います。 Magentoがmap:*パスエイリアシングの方法として選択した理由を誰もが知っていますか?すなわち-の違いの理解mapとpath不完全です-または、これらの「1つのうちの6つ、他の6つ」のものの1つです。または、この方法でMagentoが取得する追加の動作があります。 特定の問題を解決することを求めず、RequireJSとMagentoの実装についての誤解を明確にするように求めます。

3
ビューJsまたはhtmlファイルでベースURLまたは動的URLを取得する
必要に応じてフロントエンドで動的なURLを取得して、単純に定義mage/urlして使用することができますurl.build('&lt;Modulename&gt;/&lt;controllername&gt;/&lt;action&gt;/') バックエンドに対して同じことを試みたとき、期待した結果が返されませんでした。 現在のURLを指定し、指定したパスを追加します。 誰もこれがどのように機能するか説明できますか。どこかでbaseUrlを定義する必要がありますか?

1
Magento 2ミニカート、ウェルカムメッセージ、その他は、ログイン後にページキャッシュを無効にすると機能しない
Magentoの2.0.4キャッシュ、より具体的にページのキャッシュが有効になって、すべての作品を。 無効にした場合、Cookieをクリアし、ミニカートの製品が存在しないよりも顧客としてログインします。 ウェルカムメッセージは実際には正しく機能しません。ミニカートを見るには、製品ページからカートに製品を追加する必要があります。チェックアウトに行った場合、国は住所の要約に表示されません(配送先住所はアカウントに既に追加されています)。 デバッグを行ったところ、問題が指しているように見えます: module-customer/view/frontend/web/js/customer-data.js。Cookieはでprivate_content_version設定module-page-cache/view/frontend/web/js/page-cache.jsおよび使用されcustomer-data.jsます。customerData::reload機能を参照してください。 ページキャッシュを無効にすると、関数のようにサーバーからデータが読み込まれませんdataProvider::getFromServer()。 ページキャッシュが無効な場合、Cookie private_content_versionは存在しません(page-cache.jsはコース外で実行されません)。ただし、Cookieに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 ページキャッシュを有効にしてログインした後、顧客のダッシュボードには、データをロードする2つの追加のajaxリクエストがあります。 http://test.localhost/customer/section/load/?sections=&amp;update_section_id=false&amp;_=123 http://test.localhost/customer/section/load/?sections=directory-data&amp;update_section_id=false&amp;_=123 これらには、すべての国と地域のような顧客固有のデータとディレクトリデータを持つJSONオブジェクトが含まれます。これらの呼び出しでは、チェックアウト時に住所の要約に国名が表示されます。module-customer/view/frontend/web/js/sections-config.js およびmodule-checkout/view/frontend/web/js/view/shipping-address/address-renderer/default.js、functionを参照してくださいgetCountryName。 これはMagento 2のバグですか、それとも私が台無しにしたものですか?ありがとう

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.