-
ID:nGZY6Y さんの質問

今Chrome Extentionを制作しています。

そこで日本語文字列をjavascriptでEUC-JPコードとSJISコードに変換する必要がありまして、ecl.jsというjavascript用の文字コード変換ライブラリを試しているのですが、どうも機能していないようです。(ブラウザ環境はChrome)

どなたか対処方法がお分かりの方、教えて頂けませんでしょうか?
ちなみに、オリジナルのecl.jsとそれを改良したバージョンの2つを試してみましたが、どちらも上手く機能しませんでした。

ecl.js
http://www.junoe.jp/downloads/itoh/enc_js.shtml

ecl.js(改良版)
http://www.drk7.jp/MT/archives/001324.html

以下が使いたい関数のコードとなります。(ecl.jsの改良版から引用)

EscapeSJIS=function(str){
return str.replace(/[^*+.-9A-Z_a-z-]/g,function(s){
var c=s.charCodeAt(0),m;
return c<128?(c<16?"%0":"%")+c.toString(16).toUpperCase():65376<c&&c<65440?"%"+(c-65216).toString(16).toUpperCase():(c=JCT11280.indexOf(s))<0?"%81E":"%"+((m=((c<8272?c:(c=JCT11280.lastIndexOf(s)))-(c%=188))/188)<31?m+129:m+193).toString(16).toUpperCase()+(64<(c+=c<63?64:65)&&c<91||95==c||96<c&&c<123?String.fromCharCode(c):"%"+c.toString(16).toUpperCase())
})
};

Chromeのディベロッパーツールのコンソールには以下のようなエラーが出力されていました。

[エラー行数:ecl.js:207行目]
Uncaught EvalError: 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-extension-resource:".

eval使うのは禁止されているっていう感じのエラーなのだと思うのですが、
どのようにすればエラーが出ずに実行出来るようになりますでしょうか?

エラーが指摘されている行をevalを使わずに書き換えれば良いということなのでしょうか?その場合、どのように書き換えてよいか分かりません。

みんなの回答 1 件

ID:5.ZrkO さんの回答

よく分かんないけどググったら同じような問題の記事があった。

madroom project: Chrome ExtensionでHTMLにスクリプトを書いたらエラー

http://madroom-project.blogspot.jp/2013/03/chrome-extensionhtml.html
ID:6M4DtZ

あざ〜っす!!content security policyの最後の最後のところに書いてあったのですね。あの長いページを最後までは読めませんでした。。。

最終更新日:2013-09-08 (5,698 views)

関連するトピックス

ページ上部に戻る