我正在尝试将'en'作为参数传递给测试函数。但我不知道如何将参数值传递给变量以将其重用于其他语言。谁能帮我这个?预先感谢
function test() {
var en_ed = CKEDITOR.instances["story_html"].getData();
var en_ed_text = en_ed;
en_ed_text = en_ed_text.replace(/\s/g, "");
en_ed_text = removeHTMLTags(en_ed_text);
en_ed_text = Encoder.htmlDecode(en_ed_text);
if (en_ed_footer == en_ed_text) {
en_ed_text = "";
}
}
编辑 我想调用这样的函数-function test(zh); en,de ...要作为参数传递给此测试函数。
实际上,我现在是用英语编写此功能的。我想将其重用于其他语言。为此,我想将其他语言传递给此函数。一旦我通过了'de'lang,就应该指定为-
var de_ed = CKEDITOR.instances["story_html"].getData();
var de_ed_text = de_ed;
答案 0 :(得分:1)
假定使用一个全局变量来按语言保存您的编辑器,请尝试以下操作。
我建议不要使用Windows作用域(window[lang+"_ed"]
)来保存var,而要拥有自己的全局var
var editors = {};
editors["en"].footer = ".....";
editors["de"].footer = ".....";
function test(lang) {
var ed = CKEDITOR.instances["story_html"].getData()
var text = ed.replace(/\s/g, "");
text = removeHTMLTags(text);
text = Encoder.htmlDecode(text);
editors[lang].text = editors[lang].footer == text ? "": text;
}
答案 1 :(得分:1)
任何使用var
关键字声明的变量,都可以使用window["var_name"]
例如var test ="hello";
与window["test"]
相同
您可以将参数传递给window[]
以获得所需的动态变量命名。
您可以执行以下操作:
伪代码
function test(lang) {
window[lang+"_ed"] = CKEDITOR.instances["story_html"].getData();
window[lang+"_ed_text"] = window[lang+"_ed"];
window[lang+"_ed_text"] = window[lang+"_ed_text"].replace(/\s/g, "");
window[lang+"_ed_text"] = removeHTMLTags(window[lang+"_ed_text"]);
window[lang+"_ed_text"] = Encoder.htmlDecode(window[lang+"_ed_text"]);
if (window[lang+"_ed_footer"] == window[lang+"_ed_text"]) {
window[lang+"_ed_text"] = "";
}
}
测试电话
<input type="button" onclick='test("en")' value="ën" />
<br/>
<input type="button" onclick='test("de")' value="de" />