問題
- Safari (macOS および iOS バージョン) では、SPA が有効になっていると、間違ったボタンの押下が読み取られます。
-
再現手順:
1. testspaformmultiplesubmit1-1.0.0.jar
2 をデプロイします。 Safari ブラウザーを開き、ページにモジュールを追加して、senna がオンになっていることを確認します。
3. 最初のボタンをクリックすると、「You Clicked Button One」が画面とログに表示されます。
4. 2 番目のボタンをクリックすると、"You Clicked: Button One" が再び表示されます。
実際の動作: 複数のボタンがあり、2 番目のボタンが押された場合、代わりに最初のボタンの情報が送信されます。
期待される動作: 複数のボタンがあり、2 番目のボタンが押された場合、正しいボタン情報が送信される必要があります。
Environment
- Liferay DXP 7.2
解決策
- 観察された動作は、Liferay DXP の既知の問題です。 ただし、「senna.js」は非推奨であるため、Liferay は「senna.js」を DXP の一部であるモジュールである「frontend-js-spa-web」に移行しました。
- 分析の結果、Liferay は、「senna.js」のこのバグを簡単に修正できないことを発見しました。考えられる解決策はすべて、リスクが高く、広範囲に及ぶか、または高価です。 「senna.js」が非推奨であり、バグの範囲が比較的小さい (Safari のみ) という事実と合わせて、製品チームはそれを修正しないと結論付けました。
- ただし、回避策は、影響を受けるモジュールの SPA を無効にすることです。 永続的な解決策は、DXP を 7.4+ にアップグレードすることです。
追加情報
- LPS-129988 : DXP 7.4 の「frontend-js-spa-web」では「Safari で間違ったボタンがクリックされる」問題は発生しません