JSエラーMagento 2


11

私は今週末ずっと何かを完成させてオンラインで公開しようと努力してきましたが、それはどれほどうまくいかなかったのか、なぜだかわからないので、誰かが私を助けてくれることを願っています。

カスタムjQueryをカスタムテーマに追加しようとしましたが、jQueryが読み込まれ、関数が機能していたため、成功しました。しかしながら!正しく機能していませんでした。たとえば、SafariはjQueryをロードしないため、コンソールに次のエラーが表示され続けます。

defaultCaptcha.js:29 Uncaught TypeError:未定義のauthentication-popup.jsのプロパティ 'captcha'を読み取ることができません:26 Uncaught TypeError:undefined(無名関数)のプロパティ 'autocomplete'を読み取れません

私はjQueryを宣言する方法に何らかの関係があると思いましたが、そうでない場合、カスタムJSをすべて削除することに決めましたが、それでもこれらのエラーが発生しました。何かがさらに壊れているようです。

私のカスタム「テーマ」は、私がカスタムサブスクリプションボックス以外の何もない単純なランディングページです。

これらのエラーの原因は何ですか?


3
将来のGoogle社員にとって、これは既知の問題であり、GitHub github.com/magento/magento2/issues/8532
tim.baker

回答:


15

authentication-popup.jsファイルのカスタマーモジュールを置き換えます。

autocomplete: window.checkout.autocomplete

で:

autocomplete: ((window.checkout && window.checkout.autocomplete) ? window.checkout.autocomplete : null),

更新された実行

php bin / magento setup:static-content:deploy


更新

この問題は新しいバージョンで修正される可能性があります:https : //github.com/magento/magento2/blob/2.3-develop/app/code/Magento/Customer/view/frontend/web/js/view/authentication-popup.js #L23

autocomplete: window.checkout.autocomplete,

に置き換えられました:

autocomplete: window.authenticationPopup.autocomplete,

新しいMagento 2バージョンには他の変更が含まれているため、この更新は有益であり、完全なソリューションを提供しません。

これは、これに変更されたコミットです:https : //github.com/magento/magento2/commit/362f62f3c9b6c2994070615d82efbdf19f15fe50


私たちはこの解決策を試してみましたが、setup:upgrade、di:compile、static-content:deploy、cache:clean、およびcache:flushコマンドを実行した後でも、まだエラーが発生しています。他に何か提案はありますか?
codestr、

それはなくなるはずです。authentication-popup.jsファイルの変更がブラウザにあるかどうかを確認します(ブラウザキャッシュの問題)。また、このファイルが拡張機能からの他のファイルによって上書きされていないかどうかを確認します。より正確には、エラーが指定されたJSファイルまたは別のJSファイルのどちらから発生しているかを確認します。
あいまい

スタックトレースはauthentication-popup.jsファイルを指し示しており、それを上書きする拡張機能やモジュールはありません。キャッシュの問題かもしれないと思ったのですが、そこにも運がありませんでした。きっと見落としているシンプルなことだと思いますが、やがてわかります。
codestr

エラーがなくなったこの解決策を試しましたが、パッチを適用する方法が一般的にわかりません。次のmagentoバージョンの更新までベンダーに(todoコメント付きで)残しておきますか?誰か推薦はありますか?
medmek 2018年

1
@medmekコアファイルの修正としてgit / diffパッチを作成できます。Magentoの企業はここでそれを使用しています。devdocs.magento.com/guides/v2.2/cloud/project/...
無名の

1

コアからのオーバーライドファイルの後で、効果を確認するために(すべてのキャッシュがデフォルトモードで無効になっている場合でも)静的ファイルキャッシュを消去する必要があります。pub / static / frontendファイルは生成されたファイルであるため、編集しないでください。


0

オートコンプリートへの参照が原因でエラーが発生しているようですが、想定どおりにキャプチャが存在しません。不明瞭なことを行うと、オートコンプリートのエラーが削除されます。... / pub / static / frontend / Magento / luma / en_US / Magento_Captcha / js / view / checkout / defaultCaptcha.jsのデフォルトのキャプチャファイルを編集する必要がありました

参照しようとする設定が存在しない場合はnullを返します。ただし、これはエラーを削除するだけですが、チェックアウトページは空白のままです。

それはテーマが適切にフォールバックしないことに関係しているのではないかと思います。

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