2013-10-29 31 views
-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")但是,當從我本地化的字符串引用它的代碼不起作用。

+0

代碼從哪裏運行?(背景頁,場景腳本)? – gkalpak

+0

您是否嘗試在if語句上放置斷點,以便在執行條件時查看文本中的內容? – duckbrain

+0

另外:消息文本在什麼目錄下,以及如何命名該文件? – gkalpak

回答

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"); 
     } 
    }); 
}); 
+0

感謝您的回答,這很好 –