今天做个测试,代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
window.onload = function() {
var link = document.getElementsByTagName("a");
for (var i = 0; i < link.length; i++) {
link[i].onclick = function() {
alert("hello javascript");
}
}
}
</script>
</head>
<body>
<a href="javascript:void(0)">link1</a>
<br />
<a href="#" onclick="return false;">link2</a>
<br />
<a href="#">link3</a>
<br />
</body>
</html>
发现只有link1在点击弹窗后不跳转,其他两个无论是否在<a>标签里加“return false",结果都会跳转到http://localhost:8080/项目名/# , 这时的解决方案是:在function()里alert()后加上return false,如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
window.onload = function() {
var link = document.getElementsByTagName("a");
for (var i = 0; i < link.length; i++) {
link[i].onclick = function() {
alert("hello javascript");
return false;
}
}
}
</script>
</head>
<body>
<a href="javascript:void(0)">link1</a>
<br />
<a href="#" onclick="return false;">link2</a>
<br />
<a href="#">link3</a>
<br />
</body>
</html>
这样<a>标签里即便没有"return false"一样不会跳转。