DedeCMS digg Ajax 跨域的实现分析_dedecms_CMS教程_迪尔课堂

提供解决方案如下: P24迪尔课堂自学网-|第二课堂|--(官网)
@writen by etongchina 2009-02-06 19:00 P24迪尔课堂自学网-|第二课堂|--(官网)
实现方案:类似json实现 P24迪尔课堂自学网-|第二课堂|--(官网)
实现原理:js允许引入的远程文件(js)来操作本地数据 P24迪尔课堂自学网-|第二课堂|--(官网)
具体方法:(以http://news.xxx.com/200812/25-4653.html 为例) P24迪尔课堂自学网-|第二课堂|--(官网)
1.修改http://news.xxx.com/200812/25-4653.html 的js调用用部分; P24迪尔课堂自学网-|第二课堂|--(官网)
在本地html或js文件中写入: P24迪尔课堂自学网-|第二课堂|--(官网)
<SCRIPT LANGUAGE="JavaScript"> P24迪尔课堂自学网-|第二课堂|--(官网)
function _Digg(type,tid){ P24迪尔课堂自学网-|第二课堂|--(官网)
var s = document.createElement("SCRIPT"); P24迪尔课堂自学网-|第二课堂|--(官网)
s.id="cgi_emotion_list"; P24迪尔课堂自学网-|第二课堂|--(官网)
document.getElementsByTagName("HEAD")[0].appendChild(s); P24迪尔课堂自学网-|第二课堂|--(官网)
s.src="http://www.xxx.com/../dig.php?type="+type+"&tid="+tid ; P24迪尔课堂自学网-|第二课堂|--(官网)
//需要统计的php页面的 src P24迪尔课堂自学网-|第二课堂|--(官网)
} P24迪尔课堂自学网-|第二课堂|--(官网)
function visitCountCallBack(data){ P24迪尔课堂自学网-|第二课堂|--(官网)
document.getElementsByTagName("HEAD")[0].removeChild(document.getElementById("cgi_emotion_list")); P24迪尔课堂自学网-|第二课堂|--(官网)
for(var i in data){ P24迪尔课堂自学网-|第二课堂|--(官网)
var e =document.getElementById(i); P24迪尔课堂自学网-|第二课堂|--(官网)
if(e) e.innerHTML=data[i]; P24迪尔课堂自学网-|第二课堂|--(官网)
//一些代码去修改本地html P24迪尔课堂自学网-|第二课堂|--(官网)
} P24迪尔课堂自学网-|第二课堂|--(官网)
} P24迪尔课堂自学网-|第二课堂|--(官网)
</script> P24迪尔课堂自学网-|第二课堂|--(官网)
修改以下代码:<a href="javascript:Digg('digg',4653);">顶一下</a> P24迪尔课堂自学网-|第二课堂|--(官网)
为:<a href="javascript:_Digg('digg',4653);">顶一下</a> P24迪尔课堂自学网-|第二课堂|--(官网)
2. 访问远程文件: P24迪尔课堂自学网-|第二课堂|--(官网)
远程文件(http://www.xxx.com/../dig.php?type=digg&tid=456 )返回类似代码: P24迪尔课堂自学网-|第二课堂|--(官网)
visitCountCallBack({ P24迪尔课堂自学网-|第二课堂|--(官网)
"visitcount":135 P24迪尔课堂自学网-|第二课堂|--(官网)
}); P24迪尔课堂自学网-|第二课堂|--(官网)
以上代码相当于远程文件调用本地函数:visitCountCallBack P24迪尔课堂自学网-|第二课堂|--(官网)
这样一来就可以实现利用远程返回数据来动态修改本地文件。 P24迪尔课堂自学网-|第二课堂|--(官网)
3.总结: P24迪尔课堂自学网-|第二课堂|--(官网)
关于此方案,目前可行,也有人认为会过时。我认为不会产生JS越权的问题。P24迪尔课堂自学网-|第二课堂|--(官网)

扫一扫手机访问