DedeCMS digg Ajax 跨域的實(shí)現(xiàn)分析
時(shí)間: 2019-05-13 10:26
閱讀: 次
作者:素材無憂網(wǎng)
提供解決方案如下:
@writen by etongchina 2009-02-06 19:00
實(shí)現(xiàn)方案:類似json實(shí)現(xiàn)
實(shí)現(xiàn)原理:js允許引入的遠(yuǎn)程文件(js)來操作本地?cái)?shù)據(jù)
具體方法:(以http://news.xxx.com/200812/25-4653.html 為例)
1.修改http://news.xxx.com/200812/25-4653.html 的js調(diào)用用部分;
在本地html或js文件中寫入:
<SCRIPT LANGUAGE="JavaScript">
function _Digg(type,tid){
var s = document.createElement("SCRIPT");
s.id="cgi_emotion_list";
document.getElementsByTagName("HEAD")[0].appendChild(s);
s.src="http://www.xxx.com/../dig.php?type="+type+"&tid="+tid ;
//需要統(tǒng)計(jì)的php頁(yè)面的 src
}
function visitCountCallBack(data){
document.getElementsByTagName("HEAD")[0].removeChild(document.getElementById("cgi_emotion_list"));
for(var i in data){
var e =document.getElementById(i);
if(e) e.innerHTML=data[i];
//一些代碼去修改本地html
}
}
</script>
修改以下代碼:<a href="javascript:Digg('digg',4653);">頂一下</a>
為:<a href="javascript:_Digg('digg',4653);">頂一下</a>
2. 訪問遠(yuǎn)程文件:
遠(yuǎn)程文件(http://www.xxx.com/../dig.php?type=digg&tid=456 )返回類似代碼:
visitCountCallBack({
"visitcount":135
});
以上代碼相當(dāng)于遠(yuǎn)程文件調(diào)用本地函數(shù):visitCountCallBack
這樣一來就可以實(shí)現(xiàn)利用遠(yuǎn)程返回?cái)?shù)據(jù)來動(dòng)態(tài)修改本地文件。
3.總結(jié):
關(guān)于此方案,目前可行,也有人認(rèn)為會(huì)過時(shí)。我認(rèn)為不會(huì)產(chǎn)生JS越權(quán)的問題。
上一頁(yè)12 下一頁(yè)