html自动生成锚点
这里介绍使用id属性来设置锚点,并通过代码自动生成ID唯一的锚点。
根据ID属性跳转的锚点
html代码如下:
| 12
 
 | <a href="#AnchorPointID20181122184951">跳转到xxx</a><a id="AnchorPointID20181122184951"></a>
 
 | 
测试代码:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 
 | <html><head>
 <meta charset="utf-8">
 <title>测试锚点</title>
 </head>
 <body>
 <a href="#AnchorPointID20181122184951">2</a>
 <script>
 for (var i = 0; i < 60; i++) {
 document.writeln("<br>");
 }
 </script>
 <a id="AnchorPointID20181122184951">1</a>
 </body>
 </html>
 
 | 
自动生成
上面的id是用代码自动生成的,因为id属性要求唯一,我总不能每次都想一个名字吧。
Java实现
生成唯一的数字串工具类
这里使用格式化时间字符串来生成的,代码如下,打包成一个类是为了后面使用。
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 
 | package unique.id;import java.text.SimpleDateFormat;
 import java.util.Date;
 public class UniqueIDString
 {
 
 
 
 
 
 public static String createUniqueID()
 {
 Date date=new Date();
 SimpleDateFormat format=new SimpleDateFormat("yyyyMMddHHmmss");
 return format.format(date);
 }
 }
 
 | 
生成唯一锚点Java类
这个代码也很简单粗暴,直接通过字符串拼接即可。
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 
 | package anchor.point;import unique.id.UniqueIDString;
 public class AnchorPoint
 {
 public static void main(String[] args)
 {
 System.out.println(anchorPoint());
 }
 
 
 
 
 public static String anchorPoint()
 {
 
 String id="AnchorPointID"+UniqueIDString.createUniqueID();
 String anchorLink="<a href=\"#"+id+"\"></a>\n";
 String anchorHTMLTag="<a id=\""+id+"\"></a>";
 return anchorLink+anchorHTMLTag;
 }
 
 
 
 
 public static String anchorPoint(String text)
 {
 if(text==null)
 {
 return anchorPoint();
 }
 
 String id="AnchorPointID"+UniqueIDString.createUniqueID();
 String anchorLink="<a href=\"#"+id+"\">"+text+"</a>\n";
 String anchorHTMLTag="<a id=\""+id+"\"></a>";
 return anchorLink+anchorHTMLTag;
 }
 }
 
 | 
javascript实现
也是很粗暴的代码
js 生成格式化字符串
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 
 | function uniqueIdByFormatDate(date1) {var str = "";
 var year = date1.getFullYear();
 str += year;
 var month = date1.getMonth() + 1;
 if (month < 10)
 str += "0";
 str += month;
 var date = date1.getDate();
 if (date < 10)
 str += "0";
 str += date;
 var hour = date1.getHours() + 1;
 if (hour < 10)
 str += "0";
 str += hour;
 var moinute = date1.getMinutes() + 1;
 if (moinute < 10)
 str += "0";
 str += moinute;
 var second = date1.getSeconds() + 1;
 if (second < 10)
 str += "0";
 str += second;
 
 return str;
 }
 
 | 
拼接成html锚点链接
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 
 | function uniqueAnchorTags(text) {var date1 = new Date();
 var id = "AnchorIdPointID" + uniqueIdByFormatDate(date1);
 var anchorlink;
 if (text == null) {
 anchorlink = '<a href="#' + id + '></a>\n';
 }
 else {
 anchorlink = '<a href="#' + id + '>' + text + '</a>\n';
 }
 var anchorTag = '<a id="' + id + '></a>';
 console.log(anchorlink + anchorTag);
 return anchorlink + anchorTag;
 }
 
 | 
最后添加上文本框,按钮
| 12
 
 | <textarea name="in_output" id="in_output" cols="100" rows="10"></textarea><br><input type="button" name="button1" id="button1" value="生成唯一锚点" onclick="output();">
 
 | 
以及事件处理函数,就可用了。
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 
 | function output() {var in_output = document.getElementById("in_output");
 if (in_output.value == null) {
 in_output.value = uniqueAnchorTags(null);
 }
 else {
 in_output.value = uniqueAnchorTags(in_output.value);
 }
 console.log(in_output.value);
 }
 
 | 
使用javascript的好处就是它可以在浏览器上运行,这样比较方便演示,效果如下: