前の誤りを修正


このポストでは、私は2ヶ月前に送った私の広報について話したいと思います.

古い問題
Hacktoberfestでは、私は自分自身に新しいチャレンジ、ブラウザの拡張子を与えた.私は多くのreposをチェックして、いくつかの問題に取り組みました.その一つはadd keyboard shortcuts for image size selectionにある.私の最後のPRでは、私のコードはうまく機能します、しかし、それは複製して、長くて、壊れているようです.
私の古いPRにはいくつか問題がありました.最初に、クラス名が変更された後に壊れてしまうかもしれない要素を得るために、いくつかの脆弱な属性名を使用します.
const openTool = document.querySelector(
        '[class="PNyWAd ZXJQ7c"][jsname="I4bIT"]');
第二に、私は別の言語の使用を怠った.
if (dropDownWithSize.innerHTML == 'Large') { /*...*/ }
他の言語では、innerHTML値は大きくないので、コードのこの行は動作しません.
第三に、私はすべてのシナリオをテストしませんでした.いくつかの場合、私が定義した変数はNULLか定義されていないかもしれません、しかし、私の関数はそれらを使用する前に値をチェックしませんでした.
最後に、私のコードのいくつかの部分が似ていたり、複製されたり、再利用されることもありました.

新しい解決策
これらの問題を解決するために、代替案を見つけるためにいくつかの研究を行った.たとえば、innerHTML値をチェックする代わりに、私は親コンポーネントに上がって、aria-label値をチェックします.この場合、aria-labelは異なる言語で影響を受けません.
if (dropDownWithSize.getAttribute('aria-label') == 'Large') { /*...*/ }
私の重複したコードを利用して短くするために、私は基本的な方法を使用します.私の場合、ドロップダウンを再開して要素を再選択する必要があります.ただし、この要素はgetElement関数呼び出しを使用する代わりに再利用する必要があります.私はgetElementと機能を設計しています.したがって、再オープンされたドロップダウンを処理し終えると、同じ要素を得るために私のCustomize GetElement関数をもう一度呼び出すことができますが、コードは少ないです.
本当にこの古い問題を解決することに取り組んだ後、私はそれの難しさを過大評価したことに気づいた.オーナーの変更依頼を受けたとき、私は不安で、これらの変更をする自信がありませんでした.しかし、私は実際にこれらの問題を解決する可能性が私は実際には、私はできませんでしたが、私はただ落ち着いて、物事を破り、計画を立てる必要があります.