我有这个脚本可以让用户输入一个文本,它会被翻译成其他东西。它仅在单词只有1个字母时才有效。如果有超过1个字母,则表示未定义。
这是脚本:
function copyit(theField) {
var tempval = eval("document." + theField)
tempval.focus()
tempval.select()
therange = tempval.createTextRange()
therange.execCommand("Copy")
}
function results() {
var behavior = "form";
var text = document.csrAlpha.csrresult2.value;
var ff22 = text.toLowerCase();
var Words = new Array;
Words["b"] = "Dadada";
Words["bob"] = "Robert";
Words["flower"] = "Banana";
Words["brad"] = "Chair";
var trans = "";
var regExp = /[\!@#$%^&*(),=";:\/]/;
var stringCheck = regExp.exec(ff22);
if (!stringCheck) {
if (ff22.length > 0) {
for (var i = 0; i < ff22.length; i++) {
var thisChar = ff22.charAt(i);
trans += Words[thisChar] + " ";
}
} else {
trans += "Please write something.";
}
} else {
trans += "You entered invalid characters. Remove them and try again.";
}
document.csrAlpha.csrresult.value = trans;
}
HTML:
<table>
<tr>
<td align="center" class="cleanuphtml-1">
<form name="csrAlpha">
Please insert your text below:<br />
<input type="text" class="tb3" name="csrresult2" size="70" maxlength="120" autocomplete="off" onkeydown="results()" onkeyup="results()" onkeypress="return handleEnter(this, event);" />
<input type="reset" value="Reset" onclick="csrAlpha.csrresult2.focus();" />
<p>
<textarea name="csrresult" class="tb7" cols="71" rows="10" value=""></textarea>
</p>
</form>
</td>
</tr>
</table>
答案 0 :(得分:0)
如果单词不在您的数组中,那么您将得到未定义。如果您输入“Bo”,那么您将得到未定义,因为“Bo”不在您的数组中。
您正在使用KeyPress事件调用脚本。如果用户试图键入Bob,则会发生这种情况。
b - b在数组中,没问题
bo-bo不在数组中,所以未定义
bob - javascript炸弹爆炸,所以你不能做到这一点。
答案 1 :(得分:0)
我不知道你从哪里复制过这个,或者为什么你甚至考虑这样做。
这是一个更好的实现。下次请在依赖他人之前做一些研究。
HTML部分
<table>
<tr>
<td align="center" class="cleanuphtml-1">
<form name="csrAlpha">
Please insert your text below:<br />
<input type="text" class="tb3" name="csrresult2" id="csrresult2" size="70" maxlength="120" autocomplete="off" onkeyup="translate()" />
<input type="reset" value="Reset" onclick="csrAlpha.csrresult2.focus();" />
<p>
<textarea name="csrresult" id="csrresult" class="tb7" cols="71" rows="10" value=""></textarea>
</p>
</form>
</td>
</tr>
</table>
和JS部分:
<script>
var Words = {
"b" : "Dadada",
"bob" : "Robert",
"flower" : "Banana",
"brad" : "Chair"
}
function translate(){
text = document.getElementById("csrresult2").value.toLowerCase();
if(typeof Words[text] != "undefined")
document.getElementById("csrresult").value=Words[text];
else
document.getElementById("csrresult").value="Text not found!";
}
</script>