時々、非常に興味深いバグに直面します。私のjavascriptコードは実行中にalert(msg)を表示しませんが、console.log(msg)を使用するとコンソールに表示されます。 alert()の表示を妨げるものは何ですか?
どうもありがとう
これは非常に一般的な問題であり、誰もが少なくとも一度この問題に直面しています。 alert()が機能しない理由は、以前に「このページが追加のダイアログを作成しないようにする」チェックボックスをオンにしていたためです。
このコードを見てみましょう。
<script type="text/javascript">
var js_name = ['elem1', 'elem2']
for (var i = 0; i < js_name.length; i++) {
alert(js_name[i]);
};
</script>
コードを実行すると、2つのアラートボックスが表示されます。 [このページが追加のダイアログを作成しないようにする]チェックボックスをオンにして、ページを再度更新すると、アラートボックスは表示されなくなります。
解決策は、そのWebページを閉じてブラウザーで再度開く必要があることです(ブラウザー全体を閉じる必要はありません)。私はあなたがクロムを使用していると仮定しています。 Internet ExplorerまたはFireFoxには、このチェックボックス機能はありません。
アラート機能を無効にして機能しない場合
alert = function()
{
...
};
alert('hello') // won't show any alert
私の知る限り、alert()は繰り返し表示される場合を除き、常に表示されます。
これがどのように処理されるかの詳細は、ブラウザによって異なると思います。詳細を共有しますか? :)
これは、開発ツールを開いてレスポンシブデザインモードを有効にしている場合にもFirefoxで発生する可能性があります。 バグです のように聞こえます。
Firefoxの場合:[オプション]-> [コンテンツ]に移動し、[ポップアップウィンドウをブロックする]チェックボックスをオフにします。ブラウザの再試行。
alert
、confirm
、およびPrompt
がブラウザーによって無視される可能性があるもう1つの理由は、ドキュメントが値にallow-modals
のないiframe
属性を持つsandbox
にある場合です。
たとえば、Firefoxは黙ってこれを無視しますが、Chromiumは警告を表示します。
コンソールログを「アラート」に置き換えると、同様の問題が発生しますが、動作しませんが、console.log
動作します。
動作しないコードは次のとおりです。
request(options, function(error, response, body) { // Requesting API
var statusCode = response.statusCode;
if(statusCode === 200){
alert("Success");
} else {
alert(error);
}
作業コードは次のとおりです。
request(options, function(error, response, body) { // Requesting API
var statusCode = response.statusCode;
if(statusCode === 200){
console.log("Success");
} else {
console.log(error);
}