无法引用字符串 - 使用Chrome进行本地化

时间:2013-10-29 17:24:57

标签: javascript jquery html google-chrome-extension

我遇到以下代码的问题,它无法引用字符串我也指向代码。

var text = chrome.i18n.getMessage('application_text');

if ($('#multi_select option:selected').text() == text) {

    //If text equals "MY TEXT"

} else {

}

HTML

<select id='multi_select' name='multi_select'>
        <option value='1' id="multi_select_1"></option>
        <option value='2' id="multi_select_2"></option>
        <option value='3' id="multi_select_3"></option>
</select>

消息

"application_text": {
"message": "MY TEXT",
"description": "just some text"
}

基本上对text的引用不正常。如果我对字符串{{1}进行硬编码,它将起作用。但是当从我的本地化字符串引用它时,代码不起作用。

1 个答案:

答案 0 :(得分:1)

我根据你的代码尝试了一个演示扩展,它运行得很好。 (如果您发布更多代码,即整个文件内容,则某人可能能够发现缺少的详细信息。)

无论如何,下面是我的演示扩展程序的代码(基于您的代码),它可以满足您的需求 您可以查看或与自己进行比较,看看两者的不同之处。

<强>的manifest.json:

{
    "manifest_version": 2,
    "name":    "Test Extension",
    "version": "0.0",
    "default_locale": "en",

    "browser_action": {
        "default_title": "Test Extension",
        "default_popup": "popup/popup.html"
    }
}

<强> messages.json:

{
    "application_text": {
        "message": "MY TEXT",
        "description": "just some text"
    }
}

<强> popup.html:

<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript" src="jquery.min.js"></script>
        <script type="text/javascript" src="popup.js"></script>
    </head>
    <body>
        <select id="multi_select" name="multi_select">
                <option value="1" id="multi_select_1">MY TEXT</option>
                <option value="2" id="multi_select_2">YOUR TEXT</option>
                <option value="3" id="multi_select_3">OTHER TEXT</option>
        </select>
    </body>
</html>

<强> popup.js:

$(document).ready(function() {
    var text = chrome.i18n.getMessage('application_text');
    $('#multi_select').on("change", function() {
        if ($('#multi_select option:selected').text() == text) {
            console.log("True");
        } else {
            console.log("False");
        }
    });
});