<script type="text/javascript">
//实例化ajax
function InitAjax()
{
var ajax=false;
try {
ajax = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
ajax = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
ajax = false;
}
}
if (!ajax && typeof XMLHttpRequest!='undefined') {
ajax = new XMLHttpRequest();
}
return ajax;
}
function sendmsg(name,value,divid,zs_c_id)
{
//如果没有把参数ID传进来,与本例无关
if (typeof(value) == 'undefined')
{
return false;
}//得到用户记录传值
//如果name的值为bg,则保存皮肤的值
if(name == 'bg'){
var url = "recordevent.php?bg="+value+'&zs_c_id='+zs_c_id;
}
//如果name的值为dh,则保存动画的值
if(name == 'dh'){
var url = "recordevent.php?dh="+value+'&zs_c_id='+zs_c_id;
}
//如果name的值为bf,则保存播放器的值
if(name == 'bf'){
var url = "recordevent.php?bf="+value+'&zs_c_id='+zs_c_id;
}
//如果name的值为dh1,则保存导航的值if(name == 'dh1' && divid == 'daohang')
{
var pos=getElementPos(divid);
var width = document.getElementById(divid).clientWidth;
var height = document.getElementById(divid).clientHeight;
var zindex = document.getElementById(divid).style.zIndex;var dh1 = value;
var url = "recordevent.php?dh1="+dh1+'&zs_c_id='+zs_c_id+"&zs_x="+pos.x+"&zs_y="+pos.y+"&width="+width+'&height='+height+'&zindex='+zindex;
} //这个是要发送到的页面,直接在页面后面加参数就好了,是GET提交嘛 //获取本页面中呆会要更新的内容的区域的标试,个人认为没用
var show = document.getElementById("show_news");
//实例化Ajax对象
var ajax = InitAjax();
//使用Get方式进行请求,这是构建用GET提交的方法,并不提交
ajax.open("GET", url, true);
//这里是当发送到的那个页面执行状态改变时执行后面的那个函数
ajax.onreadystatechange = function() {
//如果执行是状态完成,那么就把返回的内容赋值给上面指定的层 if (ajax.readyState == 4 && ajax.status == 200) {
show.innerHTML += ajax.responseText;
}
}
//发送
ajax.send(null);
}
//背景保存到数据库
function save()
{var url = 'recordevent.php?save=1';var ajax = InitAjax();
ajax.open("GET",url,true);
ajax.onreadystatechange = function()
{
if(ajax.readyState==4 && ajax.status == 200)
{
alert(ajax.responseText);
}
}
ajax.send(null);
}
</script>
<!--鼠标拖动层-->
<script language="javascript">
function $(_sId){return document.getElementById(_sId);}
function moveStart (event, _sId){
var oObj = $(_sId);
oObj.onmousemove = mousemove;
oObj.onmouseup = mouseup;
oObj.setCapture ? oObj.setCapture() : function(){};
oEvent = window.event ? window.event : event;
var dragData = {x : oEvent.clientX, y : oEvent.clientY};
var backData = {x : parseInt(oObj.style.top), y : parseInt(oObj.style.left)};
function mousemove(){
var oEvent = window.event ? window.event : event;
var iLeft = oEvent.clientX - dragData["x"] + parseInt(oObj.style.left);
var iTop = oEvent.clientY - dragData["y"] + parseInt(oObj.style.top);
oObj.style.left = iLeft;
oObj.style.top = iTop;
dragData = {x: oEvent.clientX, y: oEvent.clientY};
}
function mouseup(){
var oEvent = window.event ? window.event : event;
oObj.onmousemove = null;
oObj.onmouseup = null;
if(oEvent.clientX < 1 || oEvent.clientY < 1 || oEvent.clientX > document.body.clientWidth || oEvent.clientY > document.body.clientHeight){
oObj.style.left = backData.y;
oObj.style.top = backData.x;
}
oObj.releaseCapture ? oObj.releaseCapture() : function(){};
}
}
</script>
<!--获取层位置-->
<script>
function getElementPos(elementId) {
var ua = navigator.userAgent.toLowerCase();
var isOpera = (ua.indexOf('opera') != -1);
var isIE = (ua.indexOf('msie') != -1 && !isOpera); // not opera spoof
var el = document.getElementById(elementId);
if(el.parentNode === null || el.style.display == 'none') {
return false;
}
var parent = null;
var pos = [];
var box;
if(el.getBoundingClientRect) //IE
{
box = el.getBoundingClientRect();
var scrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop);
var scrollLeft = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft);
return {x:box.left + scrollLeft, y:box.top + scrollTop};
}else if(document.getBoxObjectFor) // gecko
{
box = document.getBoxObjectFor(el);
var borderLeft = (el.style.borderLeftWidth)?parseInt(el.style.borderLeftWidth):0;
var borderTop = (el.style.borderTopWidth)?parseInt(el.style.borderTopWidth):0;
pos = [box.x - borderLeft, box.y - borderTop];
} else // safari & opera
{
pos = [el.offsetLeft, el.offsetTop];
parent = el.offsetParent;
if (parent != el) {
while (parent) {
pos[0] += parent.offsetLeft;
pos[1] += parent.offsetTop;
parent = parent.offsetParent;
}
}
if (ua.indexOf('opera') != -1 || ( ua.indexOf('safari') != -1 && el.style.position == 'absolute' )) {
pos[0] -= document.body.offsetLeft;
pos[1] -= document.body.offsetTop;
}
}
if (el.parentNode) {
parent = el.parentNode;
} else {
parent = null;
}
while (parent && parent.tagName != 'BODY' && parent.tagName != 'HTML') { // account for any scrolled ancestors
pos[0] -= parent.scrollLeft;
pos[1] -= parent.scrollTop;
if (parent.parentNode) {
parent = parent.parentNode;
} else {
parent = null;
}
}
return {x:pos[0], y:pos[1]};
}
function getposition(divid)
{
var pos=getElementPos(divid);
alert("距左边距离"+ pos.x +",距上边距离"+pos.y);
}</script><DIV id=daohang style='Z-INDEX: 2; left: 750px; WIDTH: 100px; POSITION: absolute; TOP: 300px; HEIGHT: 550px; visibility: hidden;cursor:move; display:none ' onmousedown="moveStart(event,'daohang');" onmouseout="sendmsg('dh1','11','daohang','4');" ><embed src=""></embed>
</DIV>
//实例化ajax
function InitAjax()
{
var ajax=false;
try {
ajax = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
ajax = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
ajax = false;
}
}
if (!ajax && typeof XMLHttpRequest!='undefined') {
ajax = new XMLHttpRequest();
}
return ajax;
}
function sendmsg(name,value,divid,zs_c_id)
{
//如果没有把参数ID传进来,与本例无关
if (typeof(value) == 'undefined')
{
return false;
}//得到用户记录传值
//如果name的值为bg,则保存皮肤的值
if(name == 'bg'){
var url = "recordevent.php?bg="+value+'&zs_c_id='+zs_c_id;
}
//如果name的值为dh,则保存动画的值
if(name == 'dh'){
var url = "recordevent.php?dh="+value+'&zs_c_id='+zs_c_id;
}
//如果name的值为bf,则保存播放器的值
if(name == 'bf'){
var url = "recordevent.php?bf="+value+'&zs_c_id='+zs_c_id;
}
//如果name的值为dh1,则保存导航的值if(name == 'dh1' && divid == 'daohang')
{
var pos=getElementPos(divid);
var width = document.getElementById(divid).clientWidth;
var height = document.getElementById(divid).clientHeight;
var zindex = document.getElementById(divid).style.zIndex;var dh1 = value;
var url = "recordevent.php?dh1="+dh1+'&zs_c_id='+zs_c_id+"&zs_x="+pos.x+"&zs_y="+pos.y+"&width="+width+'&height='+height+'&zindex='+zindex;
} //这个是要发送到的页面,直接在页面后面加参数就好了,是GET提交嘛 //获取本页面中呆会要更新的内容的区域的标试,个人认为没用
var show = document.getElementById("show_news");
//实例化Ajax对象
var ajax = InitAjax();
//使用Get方式进行请求,这是构建用GET提交的方法,并不提交
ajax.open("GET", url, true);
//这里是当发送到的那个页面执行状态改变时执行后面的那个函数
ajax.onreadystatechange = function() {
//如果执行是状态完成,那么就把返回的内容赋值给上面指定的层 if (ajax.readyState == 4 && ajax.status == 200) {
show.innerHTML += ajax.responseText;
}
}
//发送
ajax.send(null);
}
//背景保存到数据库
function save()
{var url = 'recordevent.php?save=1';var ajax = InitAjax();
ajax.open("GET",url,true);
ajax.onreadystatechange = function()
{
if(ajax.readyState==4 && ajax.status == 200)
{
alert(ajax.responseText);
}
}
ajax.send(null);
}
</script>
<!--鼠标拖动层-->
<script language="javascript">
function $(_sId){return document.getElementById(_sId);}
function moveStart (event, _sId){
var oObj = $(_sId);
oObj.onmousemove = mousemove;
oObj.onmouseup = mouseup;
oObj.setCapture ? oObj.setCapture() : function(){};
oEvent = window.event ? window.event : event;
var dragData = {x : oEvent.clientX, y : oEvent.clientY};
var backData = {x : parseInt(oObj.style.top), y : parseInt(oObj.style.left)};
function mousemove(){
var oEvent = window.event ? window.event : event;
var iLeft = oEvent.clientX - dragData["x"] + parseInt(oObj.style.left);
var iTop = oEvent.clientY - dragData["y"] + parseInt(oObj.style.top);
oObj.style.left = iLeft;
oObj.style.top = iTop;
dragData = {x: oEvent.clientX, y: oEvent.clientY};
}
function mouseup(){
var oEvent = window.event ? window.event : event;
oObj.onmousemove = null;
oObj.onmouseup = null;
if(oEvent.clientX < 1 || oEvent.clientY < 1 || oEvent.clientX > document.body.clientWidth || oEvent.clientY > document.body.clientHeight){
oObj.style.left = backData.y;
oObj.style.top = backData.x;
}
oObj.releaseCapture ? oObj.releaseCapture() : function(){};
}
}
</script>
<!--获取层位置-->
<script>
function getElementPos(elementId) {
var ua = navigator.userAgent.toLowerCase();
var isOpera = (ua.indexOf('opera') != -1);
var isIE = (ua.indexOf('msie') != -1 && !isOpera); // not opera spoof
var el = document.getElementById(elementId);
if(el.parentNode === null || el.style.display == 'none') {
return false;
}
var parent = null;
var pos = [];
var box;
if(el.getBoundingClientRect) //IE
{
box = el.getBoundingClientRect();
var scrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop);
var scrollLeft = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft);
return {x:box.left + scrollLeft, y:box.top + scrollTop};
}else if(document.getBoxObjectFor) // gecko
{
box = document.getBoxObjectFor(el);
var borderLeft = (el.style.borderLeftWidth)?parseInt(el.style.borderLeftWidth):0;
var borderTop = (el.style.borderTopWidth)?parseInt(el.style.borderTopWidth):0;
pos = [box.x - borderLeft, box.y - borderTop];
} else // safari & opera
{
pos = [el.offsetLeft, el.offsetTop];
parent = el.offsetParent;
if (parent != el) {
while (parent) {
pos[0] += parent.offsetLeft;
pos[1] += parent.offsetTop;
parent = parent.offsetParent;
}
}
if (ua.indexOf('opera') != -1 || ( ua.indexOf('safari') != -1 && el.style.position == 'absolute' )) {
pos[0] -= document.body.offsetLeft;
pos[1] -= document.body.offsetTop;
}
}
if (el.parentNode) {
parent = el.parentNode;
} else {
parent = null;
}
while (parent && parent.tagName != 'BODY' && parent.tagName != 'HTML') { // account for any scrolled ancestors
pos[0] -= parent.scrollLeft;
pos[1] -= parent.scrollTop;
if (parent.parentNode) {
parent = parent.parentNode;
} else {
parent = null;
}
}
return {x:pos[0], y:pos[1]};
}
function getposition(divid)
{
var pos=getElementPos(divid);
alert("距左边距离"+ pos.x +",距上边距离"+pos.y);
}</script><DIV id=daohang style='Z-INDEX: 2; left: 750px; WIDTH: 100px; POSITION: absolute; TOP: 300px; HEIGHT: 550px; visibility: hidden;cursor:move; display:none ' onmousedown="moveStart(event,'daohang');" onmouseout="sendmsg('dh1','11','daohang','4');" ><embed src=""></embed>
</DIV>
是否触发这个事件
我在IE下进行了测试,
把ajax相关的代码注释掉之后,
没有出现问题。所以怀疑与ajax这部分的操作有关系。别上,为什么要在oumouseout中进行服务器访问呢。
这会激发很多次的交互。
</DIV>
oObj.onmouseup = mouseup;
这个地方将 HTML中的 onmouseup的处理方法覆盖掉了。
mouseup中,处理完成后又将 onmouseup 设置为空。你一定是在 sendmsg 这个函数中进行的测试。
但实际上运行的是 mouseup.你可以把 sendmsg('dh1','11','daohang','4'); 放到 mouseup 中进行处理。