-1

我对下面的代码有问题,它也无法引用字符串,我也指向了代码。

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不能正常工作。如果我对字符串进行硬编码,它将起作用...text() == "MY TEXT")但是当从我的本地化字符串中引用它时,代码不起作用。

4

1 回答 1

1

我根据您的代码尝试了一个演示扩展,它工作得很好。(如果您发布更多代码,即整个文件内容,有人可能会发现缺失的细节。)

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

清单.json:

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

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

消息.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");
        }
    });
});
于 2013-10-30T20:26:39.983 回答