|
1, read the XML file through JS, the main is to judge each browser
View Code
Load XML document
var loadxml = function (xmlFile) {
var xmldoc;
if (window. ActiveXObject) {
xmldoc = new ActiveXObject (' Microsoft.XMLDOM ');//ie browser
Xmldoc.async = false;
Xmldoc.load (XmlFile);
}
else if (Isfirefox=navigator.useragent.indexof ("Firefox") >0) {//Firefox browser
else if (document.implementation && document.implementation.createDocument) {//This is mainly for Google browser processing
xmldoc = Document.implementation.createDocument (",", null);
Xmldoc.load (XmlFile);
}
else{//Google Browser
var xmlhttp = new window. XMLHttpRequest ();
Xmlhttp.open ("Get", xmlfile,false);
Xmlhttp.send (NULL);
if (xmlhttp.readystate = = 4) {
xmldoc = xmlhttp.responseXML.documentElement;
}
}
return xmldoc;
}
First, the XML object is judged
var checkxmldocobj = function (xmlFile) {
var xmldoc = Loadxml (xmlFile);
if (xmldoc = = null) {
Alert (' Your browser does not support XML file reads, so this page prohibits your operation, the recommended use of IE5.0 above can solve this problem! ');
Window.location.href = '.. /err.html ';
}
return xmldoc;
}
2. Display the data from the read XML file to the HTML document
View Code
<script type= "Text/javascript" language= "JavaScript" >
var xmldoc = Checkxmldocobj ('.. /openclass.xml '); Read the data in the XML file
var a = document.getElementsByTagName ("a");//Get all a tags
$ (document). Ready (function () {
VAR nodes;
if ($.browser.msie) {//Note the differences between browsers
nodes = Xmldoc.getelementsbytagname (' collage ') [0].childnodes; Read the data that needs to be displayed in the XML file
}
else if (Isfirefox=navigator.useragent.indexof ("Firefox") >0) {
nodes = Xmldoc.getelementsbytagname (' collage ') [0].children; Read the data that needs to be displayed in the XML file
}
else{
nodes = Xmldoc.getelementsbytagname (' resource ');
}
for (var i = 0; i < a.length; i++) {
if (A[i].parentnode.nodename = "SPAN") {
for (var j = 0; J < Nodes.length; J + +) {
var resource = Nodes[j];
var url = resource.getattribute (' url ');
var href=$ (A[i]). attr ("href");
if (href = = URL) {
var count = Resource.getattribute (' click ');
var span = document.createelement ("div");
var str = document.createtextnode ("CTR:" + count);
Span.appendchild (str);
var div = A[i].parentnode.parentnode;
Div.appendchild (span);
Break
}
}
}
}
});
$ (function () {//) increased click through GET request
$ (a). MouseDown (function () {
var href = $ (this). attr ("href");
$.get (".. /receive.ashx ", {url:href,rd:math.random ()}, function (msg) {
});
})
})
</script>
3, update the corresponding XML file on the server by updating the ashx file
public void ProcessRequest (HttpContext context)
{
Context. Response.ContentType = "Text/plain";
string src = context. request.querystring["url"];
String path = context. Server.MapPath ("Openclass.xml"); Open an XML file
XmlDocument xmldoc = new XmlDocument ();
Xmldoc.load (path); Note that you cannot use the Xmlload () method
XmlNodeList nodeslist = xmldoc.selectnodes ("/collage/resource"); Find the corresponding node
foreach (XmlNode node in nodeslist)
{
XmlElement XE = (xmlelement) node;
if (XE. GetAttribute ("url") = = src)
{
int count = Int. Parse (XE. GetAttribute ("click"));
Count = count + 1;
Xe. SetAttribute ("click", Count.) ToString ()); Update content
}
}
Xmldoc.save (path); Save
} |