SNAP的另类实现,采用js生成IFRAME内嵌框架的形式实现链接的网页'图像预览'

简介:

SNAP的另类实现,采用iFRAME,内嵌框架的形式.纯粹娱乐.
通过调整iframe对象style 的zoom 属性,将页缩小.有点象抓的缩略图;并且不需要后台程序的支持,完全前端javascript完成,不过还是有很多的问题的,如果目标地址写了防止在别人框架内的脚本代码或者目标页的脚本运行出错,都会有影响.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script defer="defer" type="text/javascript" charset="gb2312"> /** 原作者:未知 该代码功能很简单,将它做了很小部分的修改 **/ <!-- var tPopWait = 100; //停留tWait豪秒后显示提示。 var tPopShow = 60000; //显示tShow豪秒后关闭提示 var showPopStep = 30; //半透明步长 var popOpacity = 90; //透明度 var fontcolor = "#000000"; //文字颜色 var bgcolor = "white"; //背景颜色 var bordercolor = "black"; //边框颜色 var sPop=null; var curShow=null; var tFadeOut=null; var tFadeIn=null; var tFadeWaiting=null; var snapPanel = ""; snapPanel += "<style type='text/css'id='defaultPopStyle'>"; snapPanel += ".cPopText { background-color: "+bgcolor+";color:"+fontcolor+"; border: 1px "+bordercolor+" solid;font-color: font-size: 12px; padding-right: 4px; padding-left: 4px; height: 240px; padding-top: 2px; padding-bottom: 2px; filter: Alpha(Opacity=0)}"; snapPanel += "</style>"; snapPanel += "<div id='dypopLayer' style='position:absolute;z-index:1000;' class='cPopText'></div>"; document.body.innerHTML += snapPanel; function showPopupText() { try{ var o= event.srcElement; if(o.id == "dypopLayer") return; MouseX = event.x; MouseY = event.y; if(o.tagName=="A" && o.href!=undefined && o.href!=null && o.href!="") { //获取link 的 href 属性,并清除掉 alt && title 属性,以免显示两个提示. o.dypop=o.href; if(o.alt!=null&&o.alt!="") { o.alt="" } if(o.title!=null&&o.title!="") { o.title="" } document.title = o.href; } if(o.dypop!=sPop) { sPop = o.dypop; clearTimeout(curShow); clearTimeout(tFadeOut); clearTimeout(tFadeIn); clearTimeout(tFadeWaiting); if(sPop==null||sPop=="") { dypopLayer.innerHTML=""; dypopLayer.style.filter="Alpha()"; dypopLayer.filters.Alpha.opacity=0; } else { if(o.dyclass!=null)popStyle=o.dyclass else popStyle="cPopText"; curShow=setTimeout("showIt()",tPopWait); } } } catch(e) { alert(e); } } //避免重复引发onload function changeImage(img,url){ if(img.src==sServiceUrlRoot+"/Caches/loading.gif"){ img.src = url; } } function showIt() { dypopLayer.className=popStyle; //加入img标签 var key=Math.floor( Math.random() * 2000000); var imageHtml = "<iframe width='100%' height='100%' border='1' src='" + sPop + "' style='zoom:0.5;'></iframe>"; dypopLayer.style.width = 320; dypopLayer.style.height = 240; popWidth=dypopLayer.clientWidth; popHeight=dypopLayer.clientHeight; dypopLayer.innerHTML= imageHtml; if(MouseX+12+popWidth>document.body.clientWidth)popLeftAdjust=-popWidth-24 else popLeftAdjust=0; if(MouseY+12+popHeight>document.body.clientHeight)popTopAdjust=-popHeight-24 else popTopAdjust=0; dypopLayer.style.left=MouseX+12+document.body.scrollLeft+popLeftAdjust; dypopLayer.style.top=MouseY+12+document.body.scrollTop+popTopAdjust; dypopLayer.style.filter="Alpha(Opacity=0)"; fadeOut(); } function fadeOut() { if(dypopLayer.filters.Alpha.opacity<popOpacity) { dypopLayer.filters.Alpha.opacity+=showPopStep; tFadeOut=setTimeout("fadeOut()",1); } else { dypopLayer.filters.Alpha.opacity=popOpacity; tFadeWaiting=setTimeout("fadeIn()",tPopShow); } } function fadeIn() { if(dypopLayer.filters.Alpha.opacity>0) { dypopLayer.filters.Alpha.opacity-=1; tFadeIn=setTimeout("fadeIn()",1); } } document.onmouseover=showPopupText; --> </script> </head> <body style="height: 700px;"> | <a href="http://www.cnblogs.com/" target="_blank">http://www.cnblogs.com</a> | <a href="http://chinasf.cnblogs.com/" target="_blank">http://chinasf.cnblogs.com</a> | <a href="http://www.sina.com/" target="_blank">http://www.sina.com</a> | <a href="http://www.csdn.net/" target="_blank">http://www.csdn.net</a> | <a dypop="http://baidu.com/" href="http://baidu.com/" target="_blank">http://baidu.com</a> | <a dypop="http://www.google.com/" href="http://www.google.com/" target="_blank">http://www.google.com</a> | <a dypop="http://community.csdn.net/" href="http://community.csdn.net/" target="_blank">http://community.csdn.net</a> | <a dypop="http://www.gameres.com/" href="http://www.gameres.com/" target="_blank"> http://www.gameres.com</a> | <a href="about:blank" target="_blank">about:blank</a> | </body> </html>
提示:您可以先修改部分代码再运行




本文转自suifei博客园博客,原文链接:http://www.cnblogs.com/Chinasf/archive/2006/12/29/607386.html如需转载请自行联系原作者

相关文章
|
9月前
|
JavaScript 算法 开发者
如何用JS实现在网页上通过鼠标移动批量选择元素的效果?
本文介绍了类似电脑桌面通过鼠标选择多个图标的实现原理。主要通过监听mousedown、mousemove和mouseup事件,动态调整选择框大小并计算与元素的重叠情况。提供了角重叠和相交重叠的检测方法,并附有示例代码和在线演示链接,方便开发者参考与测试。
309 56
|
8月前
|
Web App开发 数据采集 JavaScript
动态网页爬取:Python如何获取JS加载的数据?
动态网页爬取:Python如何获取JS加载的数据?
1269 58
|
9月前
|
JavaScript 前端开发 API
|
5月前
|
编解码 JavaScript 前端开发
如何在网页播放英文的m3u8文件(基于Javascript搭建的在线网页工具)
什么是m3u8?又该如何在网页中高效、便捷地播放英文的m3u8文件呢?今天这篇文章就带你一起了解,并推荐一种基于Javascript搭建的在线网页工具,让你轻松解决播放问题。
1008 0
|
8月前
|
数据采集 Web App开发 JavaScript
Python爬虫如何获取JavaScript动态渲染后的网页内容?
Python爬虫如何获取JavaScript动态渲染后的网页内容?
|
数据采集 人工智能 自然语言处理
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
Midscene.js 是一款基于 AI 技术的 UI 自动化测试框架,通过自然语言交互简化测试流程,支持动作执行、数据查询和页面断言,提供可视化报告,适用于多种应用场景。
3141 1
Midscene.js:AI 驱动的 UI 自动化测试框架,支持自然语言交互,生成可视化报告
|
缓存 监控 JavaScript
Vue.js 框架下的性能优化策略与实践
Vue.js 框架下的性能优化策略与实践
|
缓存 负载均衡 JavaScript
构建高效后端服务:Node.js与Express框架实践
在数字化时代的浪潮中,后端服务的重要性不言而喻。本文将通过深入浅出的方式介绍如何利用Node.js及其强大的Express框架来搭建一个高效的后端服务。我们将从零开始,逐步深入,不仅涉及基础的代码编写,更会探讨如何优化性能和处理高并发场景。无论你是后端新手还是希望提高现有技能的开发者,这篇文章都将为你提供宝贵的知识和启示。
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
352 2