首页 > 开发 > AJAX > 正文

用ajax实现预览链接可以看到链接的内容

2024-09-01 08:28:41
字体:
来源:转载
供稿:网友

首先先看实现代码

html代码部分

<!DOCTYPE html><html><head><title>Previewing Links</title><link rel="stylesheet"href="script05.css" rel="external nofollow" ><script src="script05.js"></script></head><body><h2>A Gentle Introduction to JavaScript</h2><ul><li><a href="jsintro/2000-08.html" rel="external nofollow" >August column</a></li><li><a href="jsintro/2000-09.html" rel="external nofollow" >September column</a></li><li><a href="jsintro/2000-10.html" rel="external nofollow" >October column</a></li><li><a href="jsintro/2000-11.html" rel="external nofollow" >November column</a></li></ul><div id="previewWin"> </div></body></html>

这个CSS设置预览弹出窗口的样式

#previewWin {background-color: #FF9;width: 400px;height: 100px;font: .8em arial, helvetica, sans-serif;padding: 5px;position: absolute;visibility: hidden;top: 10px;left: 10px;border: 1px #CC0 solid;clip: auto;overflow: hidden;}#previewWin h1, #previewWin h2 {font-size: 1.0em;}

这个JavaScript进行服务器请求并且显示弹出窗口

window.onload = initAll;var xhr = false;var xPos, yPos;function initAll() {var allLinks = document.getElementsByTagName("a");for (var i=0; i< allLinks.length; i++) {allLinks[i].onmouseover = getPreview;}}function getPreview(evt) {if (evt) {var url = evt.target;}else {evt = window.event;var url = evt.srcElement;}xPos = parseInt(evt.clientX);yPos = parseInt(evt.clientY);if (window.XMLHttpRequest) {xhr = new XMLHttpRequest();}else {if (window.ActiveXObject) {try {xhr = new ActiveXObject("Microsoft.XMLHTTP");}catch (e) { }}}if (xhr) {xhr.onreadystatechange = showContents;xhr.open("GET", url, true);xhr.send(null);}else {alert("Sorry, but I couldn't create an XMLHttpRequest");}}function hidePreview() {document.getElementById("previewWin").style.visibility = "hidden";}function showContents() {var prevWin = document.getElementById("previewWin");if (xhr.readyState == 4) {if (xhr.status == 200) {prevWin.innerHTML = xhr.responseText;}else {prevWin.innerHTML = "There was a problem with the request " + xhr.status;}prevWin.style.top = yPos+2 + "px";prevWin.style.left = xPos+2 + "px";prevWin.style.visibility = "visible";prevWin.onmouseout = hidePreview;}}

分析:

1.

var allLinks = document.getElementsByTagName("a");for (var i=0; i< allLinks.length;i++) {allLinks[i].onmouseover = getPreview;}

这是initAll()函数的内容,它遍历页面上的所有链接,并且在每个链接上添加onmouseover事件
处理程序。这个事件处理程序将(你下面将看到的)读取目标页面并且向(可能的)访问者显示预览。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表