Files
sao/index_files/ajax.js
2022-05-28 09:55:02 +08:00

220 lines
6.6 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//创建XMLHTTP对象
function createXMLHttpRequest()
{
var xmlHttp = null;
try{
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e)
{
try{
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
try{
xmlHttp = new XMLHttpRequest();
}catch(e){
}
}
}
return xmlHttp;
}
//请求链接
//url: 请求地址
//fun回调函数
function startRequest(url, fun,xmlHttp)
{
xmlHttp.onreadystatechange = fun;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);
}
//获得xml子节点
//father父节点
//name子节点名称
//如果获得则返回节点没有则返回null
function getXmlChild(father, name)
{
var es = father.getElementsByTagName(name);
if(es.length == 0)
return null;
else
return es[0];
}
String.prototype.trim = function()
{
// 用正则表达式将前后空格
// 用空字符串替代。
var t = this.replace(/(^\s*)|(\s*$)/g, "");
return t.replace(/(^ *)|( *$)/g, "");
}
//获得xml节点值
//father父节点
//name子节点名称
//defaultvalue默认值
//如果获得则返回节点值没有则返回defaultvalue
function getXmlData(father, name, defaultvalue)
{
var es = father.getElementsByTagName(name);
if(es.length == 0)
return defaultvalue;
else if(es[0].firstChild == null)
return defaultvalue;
else
{
for(var i=0;i<es[0].childNodes.length;i++){
var node = es[0].childNodes[i];
if(node.nodeValue != null && node.nodeValue.trim() !="")
{
return node.nodeValue;
}
}
return defaultvalue;
}
}
//把"转换为&quot;
function escapeForValue(str)
{
return str.replace(/\"/g, "&quot;");
}
//用来实现文章的计数
function getClickTimes(newsid, owner,type,randomid) {
var url = '/system/resource/code/news/click/clicktimes.jsp';
if(!type) type="wbnews";
if(!randomid)
{
randomid="n";
}else
{
randomid="n"+randomid;
}
var xmlHttp = createXMLHttpRequest();
var url = url+"?wbnewsid="+newsid+"&owner="+owner+"&type="+type+"&randomid="+randomid;
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = function(){onGetClickTimes(xmlHttp);};
xmlHttp.send(null);
}
function _getBatchClickTimes(newsid, owner,type,randomid) {
var url = '/system/resource/code/news/click/batchclicktimes.jsp';
if(!type) type="wbnews";
if(!randomid)
{
randomid="n";
}else
{
randomid="n"+randomid;
}
var wbnewsids = newsid.split(",");
var isshow = false;
for(var i = 0; i < wbnewsids.length; i++)
{
var obj = document.getElementById(randomid+wbnewsids[i]);
if(obj != null)
isshow = true;
}
if(isshow)
{
var xmlHttp = createXMLHttpRequest();
var url = url+"?wbnewsid="+newsid+"&owner="+owner+"&type="+type+"&randomid="+randomid;
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = function(){_onGetBatchClickTimes(xmlHttp);};
xmlHttp.send(null);
}
}
//用来实现文章的计数
function _onGetBatchClickTimes(originalRequest)
{
if(originalRequest.readyState == 4 && originalRequest.status == 200)
{
var str = originalRequest.responseText;
var json = eval("("+str+")");
for(var i = 0; json != null && i < (json.length?json.length:1);i++)
{
var objid =json.length?(json[i].randomid+json[i].wbnewsid):(json.randomid+json.wbnewsid);
var spanobj = document.getElementsByName(objid);
if(spanobj.length > 0)
{
for(var j=0; j<spanobj.length;j++)
{
spanobj[j].innerHTML = json[i].clicktime;
}
}
}
}
}
//用来实现文章的计数
function onGetClickTimes(originalRequest)
{
if(originalRequest.readyState == 4 && originalRequest.status == 200)
{
var str = originalRequest.responseText;
var json = eval("("+str+")");
for(var i = 0; json != null && i < (json.length?json.length:1);i++)
{
var objid = json.length?(json[i].randomid+json[i].wbnewsid):(json.randomid+json.wbnewsid);
var objs = document.getElementsByTagName("span");
if(objs.length > 0)
{
for(var j=0; j<objs.length;j++)
{
if(objid==objs[j].id)
objs[j].innerHTML = json.length?json[i].wbshowtimes:json.wbshowtimes;
}
}
}
}
}
function addClickTimes(urlid,owner,type){
var url = '/system/resource/code/news/click/addclicktimes.jsp';
var xmlHttp = createXMLHttpRequest();
var url = url+"?wburlid="+urlid+"&owner="+owner+"&type="+type;
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = function(){};
xmlHttp.send(null);
}
loadXML = function(xmlString){
var xmlDoc=null;
//判断浏览器的类型
//支持IE浏览器
if(!window.DOMParser && window.ActiveXObject){ //window.DOMParser 判断是否是非ie浏览器
var xmlDomVersions = ['MSXML.2.DOMDocument.6.0','MSXML.2.DOMDocument.3.0','Microsoft.XMLDOM'];
for(var i=0;i<xmlDomVersions.length;i++){
try{
xmlDoc = new ActiveXObject(xmlDomVersions[i]);
xmlDoc.async = false;
xmlDoc.loadXML(xmlString); //loadXML方法载入xml字符串
break;
}catch(e){
}
}
}
//支持Mozilla浏览器
else if(window.DOMParser && document.implementation && document.implementation.createDocument){
try{
/* DOMParser 对象解析 XML 文本并返回一个 XML Document 对象。
* 要使用 DOMParser使用不带参数的构造函数来实例化它然后调用其 parseFromString() 方法
* parseFromString(text, contentType) 参数text:要解析的 XML 标记 参数contentType文本的内容类型
* 可能是 "text/xml" 、"application/xml" 或 "application/xhtml+xml" 中的一个。注意,不支持 "text/html"。
*/
domParser = new DOMParser();
xmlDoc = domParser.parseFromString(xmlString, 'text/xml');
}catch(e){
}
}
else{
return null;
}
return xmlDoc;
}