我遇到以下代码的问题,它无法引用字符串我也指向代码。
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}进行硬编码,它将起作用。但是当从我的本地化字符串引用它时,代码不起作用。
答案 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");
}
});
});