1

Chrome拡張機能のローカリゼーションに関する質問があります。拡張機能のポップアップHTMLファイルのボタンのテキストをローカライズしようとしています。私が使用しているコードは次のとおりです。

<button name="buttonSave" id="buttonSave" style="width: 100px; float: right;">
       <label class="buttonTextStyle">

       </label>
</button>

javascriptコードは次のとおりです。

document.getElementById("buttonSave").innerText = chrome.i18n.getMessage("SaveButton");

innerText、innerHTML、valueを使用してみましたが、ボタンのテキストが適用されません。私はここで何か間違ったことをしていますか?

4

1 に答える 1

3

ボタンのプロパティを使用<input type="button">して設定するだけです。value

<input type="button" name="buttonSave" id="buttonSave" style="width: 100px; float: right;">

....

document.getElementById("buttonSave").value = chrome.i18n.getMessage("SaveButton");

ちなみに、aの<label>中にネストされているの<button>は有効なHTMLではないと確信しています。代わりに<div>またはを使用してください。<span>

編集

私はちょうどテストをしました、そしてどちらかを使うか、.innerHTMLまたは.innerTextうまくいくはずです。よろしいですか:

  1. の戻り値はchrome.i18n.getMessage("SaveButton")空ではありませんか?

  2. document.getElementById("buttonSave")DOMが構築された後に実行していますか(つまり、 document.getElementById("buttonSave")nullでないか、エラーをスローしていません)?

innerTextまた、ボタンのまたはを上書きするinnerHTMLと、ボタン内にすでにある要素が破壊されることを理解してください。document.querySelector("#buttonSave .buttonTextStyle").innerTextおそらく、ボタン内にネストされた要素を書き込むために実際に実行したいですか?

于 2012-07-23T13:30:11.780 に答える