Safari / Mac OS Xのロシア語のパスワード

今日、私はそのような問題に遭遇しました。ロシア語の文字を含むパスワードを入力する必要があります。 しかし、そこにありました。 Safariは言語の切り替えを拒否しました! 単純な解決策は、パスワードをTextEditに入力してパスワードフィールドにコピーすることですが、本文にはこの問題に対するより洗練された解決策が必要でした。 そして今、CSS-JitsuとJavascript-fuのトリックを思い出し、金曜日の酔っぱらいに行きたい、またはついに三つ編みに行きたいという欲求を克服し、謙虚な召使が戦いに突入しました...


解決策は驚くほど簡単でしたが、その方法は非常に長いものでした。 最初の最も明白なステップは、パスワードタイプのすべてのフィールドをテキストタイプのフィールドに置き換えることでした。 しかし、ユーザーが入力したテキストを非表示にする方法は次のとおりです。 最初の試行解は、テキストを透明にすることでした: color: rgba(0,0,0,0) 。 ただし、この場合、ユーザーは入力した文字数とフィールドが空かどうかをまったく確認しませんでした。 要するに、 Surfin 'Safariで長い検索をした後私はすばらしいCSSプロパティに-webkit-text-securityました: -webkit-text-security ! このプロパティは、3番目のバージョンから始まるすべてのSafari -webkit-text-security: squareディスク( -webkit-text-security: disk )、円( -webkit-text-security: circle )、または正方形( -webkit-text-security: square )を-webkit-text-security: square 。 結果として、次のJavaScript関数があります。

 function() { var F = document.forms; for(var j=0; j<F.length; ++j) { var f = F[j]; for (var i=0; i<f.length; ++i) { if (f[i].type.toLowerCase() == "password") { var el = f[i]; el.type = "text"; el.style.cssText = "-webkit-text-security: disc"; } } } } 


しかし、ブックマークは、ブックマークバーにドラッグして使用する必要があり、私は(明らかな理由で)ここに配置できません。 したがって、そのコードのみを提供します。

javascript:(function(){var F=document.forms;for(var j=0;j<F.length;++j){var f=F[j];for(var i=0;i<f.length;++i){if(f[i].type.toLowerCase()=="password"){var el=f[i];el.type="text";el.style.cssText="-webkit-text-security:disc";}}}})();

健康に使用してください。 ;-)

ps誰かがこの問題を根本的に根絶する方法を知っているなら、この投稿nafigを聞いて取り壊してうれしいです。 どうやら、問題の根本はOS自体の腸に隠されているようです。 Mac OS Xのすべてのパスワードフィールドは同様に動作します(10.5.7があります)。

Source: https://habr.com/ru/post/J64756/


All Articles