自作のコンテキストメニューを作ってみたんですが、label属性に日本語を入れると文字化けしてしまいます。
何かいい方法はありませんか。
var menu1=document.createElement("menuitem");
menu1.setAttribute("label","label");// label と表示される
var menu2=document.createElement("menuitem");
menu2.setAttribute("label","ラベル");//記号の羅列が表示される
js内で扱う2バイト文字はエスケープすればいけるんじゃないかと思います。
回答ありがとうございます。escape("ラベル").replace(/%/g,"\\");// -> \u30E9\u30D9\u30EB
menu1.setAttribute("label","\u30E9\u30D9\u30EB");
↑のようにしたらこんな風に表示されてしまいました。。%u30E9%u30D9%u30EB
Unicode エスケープしてみたらいかがでしょう。
ラベル であれば、\u30e9\u30d9\u30eb みたいに。
変換するには、以下のページにある unicode.xul が便利です。
http://piro.sakura.ne.jp/latest/blosxom.cgi/mozilla/xul/2005-09-...
回答ありがとうございます。
やってみましたが、>>2 のようになってしまいました。
なにがいけないんでしょう
回答ありがとうございます。
s-jisで保存してました。
utf-8にしてみるとエラーが発生しました。
「SyntaxError : illegal character 行: 1」
今度はbomを消してやってみましたが相変わらずです。。。