One minute
【Chrome拡張機能】JavaScriptで時計を作っていたら、‘unsafe-eval’で怒られた
この記事を読むと以下のような価値が生まれます。
- unsafe-evalの意味がわかる
- setInterval構文の正しい書き方がわかる
エラー文
Chromeで新規タブを開いたときに、
JavaScriptで動くデジタル時計を表示させようとしていたら
時計がうごかず、、、
Chromeの画面で右クリック>検証>consoleタブ
にこんなエラーが表示されていました。
Refused to evaluate a string as JavaScript because ‘unsafe-eval’ is not an allowed source of script in the following Content Security Policy directive: “script-src ‘self’”.
Chrome ExtensionsでUncaught EvalErrorになったときの対処法にも書かれている通り、
簡単に訳すと
文字列からコードを生成するevalメソッドはGoogleのセキュリティ上、ダメですよ!
解決策
setIntervalメソッドの第一引数を文字列ではなく、関数として読み込んだ。
私がコードの中で文字列から生成していたコードが以下であります。
改善前
setInterval('showClock()', 1000);
改善後
setInterval(function(){showClock()}, 1000);
改善前後全文
GitHubのソースコード無事表示されました
comments powered by Disqus
クリックできる目次