Javascript 无法引用字符串-带Chrome的本地化
我有一个问题,下面的代码,它不能引用字符串我指出的代码太多Javascript 无法引用字符串-带Chrome的本地化,javascript,jquery,html,google-chrome-extension,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 基本上,对文本的引用不正常。如果我对字符串进行硬编码,…text()=“MY text”)则可以工作,但是从本地
var text = chrome.i18n.getMessage('application_text');
if ($('#multi_select option:selected').text() == text) {
//If text equals "MY TEXT"
} else {
}
HTML
基本上,对
文本的引用不正常。如果我对字符串进行硬编码,…text()=“MY text”)
则可以工作,但是从本地化字符串引用该字符串时,代码不起作用。我尝试了基于您的代码的演示扩展,效果很好。(如果您发布更多代码,即整个文件内容,可能有人会发现缺少的细节。)
无论如何,下面是我的演示扩展的代码(基于您的代码),它可以满足您的需要。
您可以查看它或将其与您自己的进行比较,以了解两者的不同之处
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"
}
}
{
"application_text": {
"message": "MY TEXT",
"description": "just some text"
}
}
<!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>
$(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");
}
});
});
messages.json:
{
"manifest_version": 2,
"name": "Test Extension",
"version": "0.0",
"default_locale": "en",
"browser_action": {
"default_title": "Test Extension",
"default_popup": "popup/popup.html"
}
}
{
"application_text": {
"message": "MY TEXT",
"description": "just some text"
}
}
<!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>
$(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");
}
});
});
popup.html:
{
"manifest_version": 2,
"name": "Test Extension",
"version": "0.0",
"default_locale": "en",
"browser_action": {
"default_title": "Test Extension",
"default_popup": "popup/popup.html"
}
}
{
"application_text": {
"message": "MY TEXT",
"description": "just some text"
}
}
<!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>
$(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");
}
});
});
代码从何处运行(后台页面,contet脚本)?您是否尝试过在if语句上放置断点,以查看执行条件时文本中的内容?另外:消息文本在哪个目录中,文件名如何?@ExpertSystem代码在my Popup.js而不是background.js中运行,至于message.json,它存储在_locales/en/messages中。json@JaisonBrooks你解决这个问题运气好吗?如果你觉得我的答案指向正确的方向,考虑把它标记为被接受,这样在将来面对类似问题的用户将能够认识到它是有用的(不必阅读评论等)。