不用担心!看起来文字比实际多;-) 所以请继续阅读!
主要问题是:
- 错误:无效标签是什么意思?
- 我的脚本中的错误在哪里?
现在令人讨厌的东西开始了;-):
我有一个脚本,用于从服务器(服务器提供该数组的 JSON 版本)加载当前语言的语言数组项目(通过 js 中的 lang_keys 定义的项目 - 见上文)。
使用 JStranslate("<synonym>");
函数,您可以获得当前语言所需的文本。更新:jquery 1.5 未缩小(旧:jquery.js(v1.4.1 - 缩小))已加载并且 lang.js 也是。
所以我得到一个错误,我只是找不到
我必须补充一点:该translate()
功能可以正常工作并且JS没有中断。所有功能都按需要工作。
我没有任何其他错误,所有 JS 工作正常......但我不想在未来感到惊讶 - 所以我需要摆脱那个错误。
chrome 中的控制台输出(在 ajax 请求 [/query/js_lang/json] 之后列出):
Uncaught SyntaxError: Unexpected token : jQuery.jQuery.extend.globalEvaljquery.js:602
jQuery.ajaxSetup.converters.text scriptjquery.js:6992
ajaxConvert jquery.js:6884
done jquery.js:6454
jQuery.ajaxTransport.send.callback jquery.js:7252
jQuery.ajaxTransport.send jquery.js:7261
jQuery.extend.ajax jquery.js:6646
(anonymous function) lang.js:116
Firefox 中的控制台输出(在 ajax 请求 [/query/js_lang/json] 之后列出):
invalid label
{"js_accept_terms":"Du musst unseren A...:"Kontaktname","js_agent_email":"Konta
谁能告诉我错误的确切含义:是什么invalid label
意思?
我的脚本(lang.js)看起来像这样:
var month_names = new Array();
var day_names = new Array();
var lang_keys = new Array(
"js_accept_terms",
...
"nope"
);
var translations = new Array();
function translate(key, replace){
var translated = translations[key];
if(replace != undefined){
for(var i=0; i<replace.length; i++){
translated = translated.replace(/\%1/, replace);
}
}
return translated;
}
$.ajax({ //this is line 116
url: "/query/js_lang/json",
type: "post",
data: {keys: JSON.stringify(lang_keys)},
timeout: 7000,
success: function(data){
var trans = jQuery.parseJSON(data);
for(var key in trans){
translations[key.replace(/^js\_/, "")] = trans[key];
}
month_names = new Array(translate("jan"), translate("feb"), translate("mar"), translate("apr"), translate("may"), translate("jun"), translate("jul"), translate("aug"), translate("sep"), translate("oct"), translate("nov"), translate("dec"));
day_names = new Array(translate("sun"), translate("mon"), translate("tue"), translate("wed"), translate("thu"), translate("fri"), translate("sat"));
},
error: function(){
out_message("Error. No Language loaded!", "Error");
},
async: false
});
out_message()
显示一个 CSS 样式的 div。我在网站的其他部分使用该功能,它可以正常工作。
我删除lang_keys
了返回值具有特殊字符(如“:”、变音符号、斜杠等)的项目......说:我只用字母数字值测试它并得到相同的错误。
对不起我的英语;-) 感谢您的帮助