首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 腾讯的javascript到底有多强?
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-05 22:51:36 楼主
    比如http://user.qzone.qq.com/185591441/blog/1200979684

    这个页面

    那个 flash就不说了,但是连上面的几个字在 源代码里面也找不到 

    这是怎么回事,是怎么实现的啊?

    关键是哪行代码啊?
    20  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-06 07:05:011楼 得分:0
    脚本加载.

    理论上可能是为了减少重复代码. 不过现在好象被不少站点用于隐藏某些内容.
    就象用 flash player 播放 flv 一样. 并不只是为了发挥该文件格式的优越性.

    该页面中的游戏为:
    <embed width="100%" height="100%" bgcolor="#000000"
     src="http://www.my33.com/lashfile/2005/game/1/10/20051129225544.swf">
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-06 07:16:582楼 得分:0
    http://b.qzone.qq.com/cgi-bin/blognew/blog_get_data?uin=185591441&numperpage=15&blogid=1200979684&arch=0&pos=0&direct=1&r=0.9963684245893007

    取回数据.再正则取一下就行了.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • muxrwc
    • 等级:
    发表于:2008-05-06 10:05:353楼 得分:0
    JScript code
    它里面套了IFRAMF,你进入IFRAME就可以看到东西了. 直接从地址栏运行 javascript:alert(document.documentElement.outerHTML); javascript:document.write(document.documentElement.outerHTML); 是看当前页代码.. javascript:alert(iframes[n].document.documentElement.outerHTML); javascript:document.write(iframes[n].document.documentElement.outerHTML); 就可以看到IFRAME里的内容了... javacript:alert(iframes.length); 查看有多少个IFRAME
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-06 10:29:454楼 得分:0
    ←李宇春什么时候做了程序员?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • muxrwc
    • 等级:
    发表于:2008-05-06 10:35:035楼 得分:0
    引用 4 楼 yzoneyzone 的回复:
    ←李宇春什么时候做了程序员?


    .......

    李宇春什么时候长这样???
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • muxrwc
    • 等级:
    发表于:2008-05-06 10:43:036楼 得分:0
    HTML code
    [Quote=引用 2 楼 mrshelly 的回复:] http://b.qzone.qq.com/cgi-bin/blognew/blog_get_data?uin=185591441&numperpage=15&blogid=1200979684&arch=0&pos=0&direct=1&r=0.9963684245893007 取回数据.再正则取一下就行了. [/Quote] :D 这个callback的执行文件(脚本回调) 不用ajax比较好(除非要求有同步请求,但是这个回调很显然是不需要的) EMU提供了若干种兼容方法,不过FF更新2点xx版本后,就不好用了... @,@ 先贴EMU的方法...


    JScript code
    <HTML> <HEAD> <SCRIPT LANGUAGE="JavaScript"> var isIE = !!window.ActiveXObject; var useFragment=false; function loadjs(url,callback,errcallback){ if(isIE){ if(useFragment){ var df = document.createDocumentFragment(); df.visitCountCallBack = function(data){ s.onreadystatechange=null; df=null; callback(data); } var s = df.createElement("SCRIPT"); df.appendChild(s); s.onreadystatechange=function(){ if(s.readyState=="loaded") { s.onreadystatechange=null; df=null; errcallback(); } } s.src = url; }else{ var i=new ActiveXObject("htmlfile"); i.open(); i.parentWindow.visitCountCallBack=function(i){ return function(d){ i.parentWindow.errcallback=null; i=null; callback(d); } }(i); i.parentWindow.errcallback=function(d){ i.parentWindow.errcallback=null; i=null; errcallback(d); } i.write("<script src=\""+url+"\"><\/script><script defer>setTimeout(\"errcallback()\",0)<\/script>") if(i)i.close();//如果数据被cache,运行到这一行的时候有可能回调已经完成,窗口已经关闭。 } }else{ var i = document.createElement("IFRAME"); i.style.display="none"; i.callback=function(o){ callback(o); i.contentWindow.callback=null; i.src="about:blank" i.parentNode.removeChild(i); i = null; }; i.errcallback = errcallback; i.src="javascript:\"<script>function visitCountCallBack(data){frameElement.callback(data)};<\/script><script src='"+url+"'><\/script><script>setTimeout('frameElement.errcallback()',0)<\/script>\""; document.body.appendChild(i); } } function init(){ var spans = document.getElementsByTagName("span"); for(var i=0;i<spans.length;i++){ var id = spans[i].id; var url = "http://g2.qzone.qq.com/fcg-bin/cgi_emotion_list.fcg?uin="+id; var callback = function(id){ return function(data){ document.getElementById(id).innerHTML = data.visitcount; } }(id); var errcallback = function(id){ return function(){ document.getElementById(id).innerHTML = "无法连接到服务器"; } }(id); loadjs(url,callback,errcallback); } } </SCRIPT> </HEAD> <BODY onload="init()"> 123456 的访问量:<span id="123456"></span><BR> 2543061 的访问量:<span id="2543061"></span><BR> 20050606 的访问量:<span id="20050606"></span><BR> </BODY> </HTML>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • muxrwc
    • 等级:
    发表于:2008-05-06 12:34:497楼 得分:0
    写了段兼容的...调试了好半天...
    JScript code
    <script type="text/javascript"> var callbackJS = function (name, url, callback, errorcallback) { if (/MSIE/.test(window.navigator.userAgent)) { var frag = document.createDocumentFragment(), script = frag.createElement('script'); frag[name] = function () { frag = script = script.onreadystatechange = frag[name] = null; callback.apply(null, arguments); }; script.onreadystatechange = function () { if (script.readyState == 'loaded') { script.onreadystatechange = null, errorcallback(); } }; script.src = url; frag.appendChild(script); } else { //虽然解决了,不过有点不爽,毕竟操作当前页很不爽 window.setTimeout(function () { var tempCallBack = window[name], div = document.createElement('div'); window[name] = function () { window[name] = tempCallBack, div.parentNode.removeChild(div), tempCallBack = window.__errorcallback = div = null; callback.apply(null, arguments); }; window.__errorcallback = errorcallback; div.innerHTML = '<script type="text\/javascript" src="' + url + '"><\/script>' + '<script type="text\/javascript">window.setTimeout("try{__errorcallback();}catch(e){}", 0);<\/script>'; document.body.appendChild(div); if (window.opera) { div.innerHTML = div.innerHTML; document.body.removeChild(div); document.body.appendChild(div); } }, 0); } }; window.onload = function () { callbackJS( '_Callback', 'http://b.qzone.qq.com/cgi-bin/blognew/blog_get_data?uin=185591441&numperpage=15&blogid=1200979684&arch=0&pos=0&direct=1&r=0.9963684245893007' , function () { alert(arguments[0].data.title); } , function () { alert(0); } ); }; </script>
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-06 13:45:158楼 得分:0
    引用 5 楼 muxrwc 的回复:
    引用 4 楼 yzoneyzone 的回复:
    ←李宇春什么时候做了程序员? 
     

    ....... 

    李宇春什么时候长这样???


    牛人,,,哈噺
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-06 14:08:509楼 得分:0
    别说,还真像李宇春来着。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hooyke
    • 等级:
    发表于:2008-05-06 14:52:1510楼 得分:0
    楼上有几位看来眼神还不好
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-06 14:55:3811楼 得分:0
    。。。。都跑题了。。。@(-_-)@
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-06 15:29:1212楼 得分:0
    引用 4 楼 yzoneyzone 的回复:
    ←李宇春什么时候做了程序员?

    笑死我了。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • muxrwc
    • 等级:
    发表于:2008-05-06 16:28:5513楼 得分:0
    ....

    - - ¦ ¦ ¦
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-06 16:36:4714楼 得分:0
    引用 12 楼 littlelam 的回复:
    引用 4 楼 yzoneyzone 的回复:
    ←李宇春什么时候做了程序员? 
     
    笑死我了。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wsyab
    • 等级:
    发表于:2008-05-06 17:18:0115楼 得分:0
    引用 5 楼 muxrwc 的回复:
    引用 4 楼 yzoneyzone 的回复:
    ←李宇春什么时候做了程序员? 
     

    ....... 

    李宇春什么时候长这样???


    李宇春小时候吧
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-07 00:27:4816楼 得分:0
    建议WC跳楼
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • FEB15
    • 等级:
    发表于:2008-05-07 00:40:0317楼 得分:0
    我没去看QZone的源码

    异步加载代码 注入代码 注入对象 可以让部分源码看不见
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • muxrwc
    • 等级:
    发表于:2008-05-07 09:38:4518楼 得分:0
    引用 16 楼 dead_of_winter 的回复:
    建议WC跳楼


    吃饭睡觉打winter....
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-08 10:00:2219楼 得分:0
    .....这什么跟什么啊.李宇春都聊出来了...我汗.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    发表于:2008-05-08 19:29:0720楼 得分:0
    中国的明星脸

    wc->李宇春->姚明->孙继海->郝海东

    快成名人了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • satans18
    • 等级:
    发表于:2008-05-08 21:52:5721楼 得分:0
    建议LZ去装一个ff+firebug
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • btbtd
    • 等级:
    发表于:2008-05-09 09:22:4422楼 得分:0
    眼神乍差那么多呀...
    李宇春怎能跟WC比呢...
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    世纪乐知(北京)网络技术有限公司 版权所有 京 ICP 证 020026 号
    Copyright © 2000-2007, CSDN.NET, All Rights Reserved