这是我在访问QQ互动门户网页is.qq.com的时候突然想到的。
在http://is.qq.com/cgi-bin/mini/index页面上提供了一个功能,就是点下相应互动门户后面的那个添加按钮,就可以在QQ面板上添加一个互动门户的按钮。一时很好奇这个是怎么做到的。顺手就点开了源文件查看了一下。 看了源文件,发现这都是用一个AddPortal函数来控制的。 function AddPortal (FpanelID) { var boolFals=IsInstallSupMiniQQ(); if(boolFals==true) { if(FpanelID==10003) { var exe ="Tencent://AddPortal/?Menu=Yes&Exe=QQ&PanelID="+Fpa nelID; } else { var exe ="Tencent://AddPortal/?Menu=Yes&PanelID="+FpanelID; } location.href=exe; } } 也就是说网页中的AddPortal函数与本地的QQ做了交互,来实现在QQ的控制面板上添加一个门户按钮。并且用QQ自己的格式为其定义了URL。
大家想到了什么?也就是说,QQ可能存在许多这样的脚本接口用来与网页进行交互操作。反过来说,网页中特定格式的脚本可以对本地QQ产生作用。
在源码中,我还看见有这样一个脚本文件,是http://im.qq.com/../../js/checkqqclient.js。下载下来以后,发现里面也有取得QQ的Timwpdll组件版本的接口函数。用这个函数来判断当前用户的QQ版本能不能直接添加交互门户按钮。
呵呵。我现在只是发现了QQ有这种脚本接口,但是到底有多少,有哪些,还无从得知。希望大家能多多发掘:)
个人觉得QQ开发这种接口是很不安全的。
把一下的代码保存成一个html文件在本地浏览,点击相应的文字,就可以实现相应的功能。
<HTML> <HEAD> <TITLE>欢迎光临腾讯互动门户首页</TITLE> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312"> <link href="/css/im.css" rel="stylesheet" type="text/css"> <script language="JavaScript" type="text/JavaScript" src="http://im.qq.com/../../js/checkqqclient.js"> </script> <SCRIPT language=JavaScript type=text/JavaScript> <!-- function MM_openBrWindow(theURL,winName,features) { //v2.0 window.open(theURL,winName,features); } //--> </SCRIPT> <SCRIPT language="JavaScript"> function QQver(){ var xmlhttp=new ActiveXObject("TimwpDll.TimwpCheck"); var n = xmlhttp.GetVersion(); alert('你的QQ的TimwpDll版本是'+n); } function AddPortal (FpanelID) { var boolFals=IsInstallSupMiniQQ(); if(boolFals==true) { if(FpanelID==10003) { var exe ="Tencent://AddPortal/?Menu=Yes&Exe=QQ&PanelID="+Fpa nelID; } else { var exe ="Tencent://AddPortal/?Menu=Yes&PanelID="+FpanelID; } location.href=exe; } } </SCRIPT> </HEAD> <BODY BGCOLOR=#FFFFFF LEFTMARGIN=0 TOPMARGIN=0 MARGINWIDTH=0 MARGINHEIGHT=0> <TD valign="top" background="/miniportal/images/index_right_03_07.gif">< ;A onclick=QQver() style="cursor:hand">显示版本
</a></TD> <TD valign="top" background="/miniportal/images/index_right_03_07.gif">< ;A onclick=AddPortal(10003) style="cursor:hand">加入QQ
新声代面板</a></TD> </BODY> </HTML>
上面代码的包 点击下载
解决方法:想用旧版本你就用吧。呵。 【转自世纪安全网 http://www.21safe.com】
|