[英]Browser Compatibility— Plain Javascript code
我很難在Chrome瀏覽器版本43.0.2357.81 m和OS Windows XP中運行以下代碼。
下面的代碼在Firefox和IE上完美運行。 Chrome瀏覽器是否與Windows Xp兼容。
在chrome中我得到TrpeError:translate不是函數;
提前致謝。
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function translate(event){
if(event.keyCode == 13 || event.which==13){
alert("You have entered ENTER key");
}
}
</script>
</head>
<body>
<table>
<tr>
<td>User Name: </td>
<td><input type="text" name="username" id="username"></td>
</tr>
<tr>
<td>Password :</td>
<td>
<input type="password" name="password" id="password" onkeydown="javascript: translate(event)">
</td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="Login" value="Login"></td>
</tr>
</table>
</body>
</html>
編輯:正如Aaron Digulla所指出的,這與我最初想到的Chrome的內容安全政策無關。 不過,我會留下這個答案,因為下面的代碼仍然是處理事件的有效方法。
var passfield = document.getElementById('password');
passfield.onkeydown = function(event) {
if(event.keyCode == 13 || event.which==13){
alert("You have entered ENTER key");
}
}
以下小提琴顯示了這一點:
https://jsfiddle.net/x0enzmc7/
省略javascript:
. 這應該工作:
... onkeydown="translate(event)" ...
但是將函數附加到頁面的onload事件可能不那么脆弱:
function onload() {
var password = document.getElementById('password');
password.onkeydown = translate;
}
請注意,在translate()
可能未定義event
。 使用
event = event || window.event;
解決這個問題。
最后,該函數應該返回true
或false
,具體取決於它是否要吞下事件。
如您所見,這很難做到。 只需將jQuery添加到您的頁面並使用它 - 它可以修復所有那些討厭的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.