📄 hpmain.js
字号:
//--Global declaration
var gxmlDoc = null;
var garrLayoutParts = new Array();
var arrParts = new Array("HPFrameHL", "HPFrameDL");
var blnIE5 = false;
var blnBorder = false;
var blnTrack = false;
var blnDebug = false;
var blnMoved = false;
var userAgent = navigator.userAgent;
var MSIEIndex = userAgent.indexOf("MSIE");
if (userAgent.indexOf("Win") != -1 &&
userAgent.indexOf("MSIE") != -1 &&
userAgent.substring((MSIEIndex + 5),(MSIEIndex + 6)) > 4)
{
blnIE5 = true;
}
//--Object declaration
function objPart(strPartName, strState, strOrder)
{
this.name = strPartName;
this.state = strState;
this.order = strOrder;
}
function loadPage(nthTrack,nthBorder)
{
var sFile = new String(window.document.location);
var blnDefault = (sFile.toLowerCase().indexOf("morenews") == -1);
blnDebug = (QueryString('dbg') != "");
var s = QueryString("border");
if (s != "") nthBorder = parseInt(s);
s = QueryString("track");
if (s != "") nthTrack = parseInt(s);
//--Determine whether to track.
if (nthTrack > 0)
{
var td = new Date();
var xval = 67890;
var yval = ((Math.round(Math.abs(Math.cos(td.getTime()))*xval)%xval));
if ((yval % nthTrack) == 0)
blnTrack = true;
}
if (blnIE5)
{
if (blnDefault)
{
for (var i = 0; i < arrParts.length; i++)
garrLayoutParts[i] = new objPart(arrParts[i], "EXPAND", i);
//--Initialize part display state
RearrangePartPos();
loadSavedShowHide();
//--Initialize mouse even handlers
window.document.onmousedown = Document_OnMouseDown;
window.document.onmousemove = Document_OnMouseMove;
window.document.onmouseup = Document_OnMouseUp;
//--Determine whether to show border.
if (nthBorder > 0)
{
var td = new Date();
var xval = 12345;
var yval = ((Math.round(Math.abs(Math.cos(td.getTime()))*xval)%xval));
if ((yval % nthBorder) == 0)
{
blnBorder = true;
document.all("HPFrameHLContent").style.borderColor = "#cccccc";
document.all("HPFrameDLContent").style.borderColor = "#cccccc";
}
}
}
}
else
{
//--Enable collapse/expand for IE4+
if (blnDefault &&
userAgent.indexOf("MSIE") != -1 &&
userAgent.substring((MSIEIndex + 5),(MSIEIndex + 6)) > 3)
{
document.all('HPFrameHLTab3').src = "/library/homepage/images/collapse.gif";
document.all('HPFrameDLTab3').src = "/library/homepage/images/collapse.gif";
}
}
}
function saveState()
{
var udoLayout = document.all("oLayout");
for (var i = 0; i < garrLayoutParts.length; i++)
udoLayout.setAttribute(garrLayoutParts[i].name, (garrLayoutParts[i].state + "," + garrLayoutParts[i].order));
udoLayout.save("HPLayoutStore");
}
function loadSavedShowHide()
{
var udoLayout = document.all("oLayout");
if (!udoLayout)
return;
udoLayout.load("HPLayoutStore");
for (var i = 0; i < garrLayoutParts.length; i++)
{
var strAttr = udoLayout.getAttribute(garrLayoutParts[i].name);
if (strAttr)
{
var strstate = strAttr.split(',')[0];
if (strstate)
{
if (strstate == "EXPAND")
showHideContent(garrLayoutParts[i].name, true);
else if (strstate == "COLLAPSE")
showHideContent(garrLayoutParts[i].name, false);
}
}
}
}
function showHideContent(id,bOn)
{
var bMO = false;
var oContent = document.all.item(id+"Content");
var oImage = document.all.item(id+"Tab3");
if (!oContent || !oImage) return;
if (event.srcElement)
{
bMO = (event.srcElement.src.toLowerCase().indexOf("_mo.gif") != -1);
bOn = (oContent.style.display.toLowerCase() == "none");
}
if (bOn == false)
{
oContent.style.display = "none";
oImage.src = "/library/homepage/images/expand" + (bMO? "_mo.gif" : ".gif");
}
else
{
oContent.style.display = "";
oImage.src = "/library/homepage/images/collapse" + (bMO? "_mo.gif" : ".gif");
}
for (var i = 0; i < garrLayoutParts.length; i++)
{
if (id == garrLayoutParts[i].name)
garrLayoutParts[i].state = bOn ? "EXPAND" : "COLLAPSE";
}
if (event.srcElement)
saveState();
}
function setBorder(id,bOn)
{
var oTab = document.all.item(id+"Tab");
var oTab1 = document.all.item(id+"Tab1");
var oTab2 = document.all.item(id+"Tab2");
var oTab3 = document.all.item(id+"Tab3");
var oBorder = document.all.item(id+"Content");
if (!oTab || !oTab1 || !oTab2 || !oTab3 || !oBorder)
return;
if (bOn)
{
oBorder.style.borderColor = "#cccccc";
oTab.bgColor = "#3366CC";
oTab1.src = "/library/homepage/images/curve_mo.gif";
oTab2.color = "#FFFFFF";
if (oBorder.style.display == "none")
oTab3.src = "/library/homepage/images/expand_mo.gif";
else
oTab3.src = "/library/homepage/images/collapse_mo.gif";
}
else
{
oBorder.style.borderColor = blnBorder? "#cccccc" : "#ffffff";
oTab.bgColor = "#CCCCCC";
oTab1.src = "/library/homepage/images/curve.gif";
oTab2.color = "#336699";
if (oBorder.style.display == "none")
oTab3.src = "/library/homepage/images/expand.gif";
else
oTab3.src = "/library/homepage/images/collapse.gif";
}
}
function trackInfo(obj, param)
{
if (blnTrack)
{
var sUrl = "http://www.microsoft.com/isapi/hpredir.asp"
+ ("?type=CT&source=WWW&sPage=" + param + "&tPage=" + obj.href);
if (blnDebug) alert(sUrl);
obj.href = sUrl;
}
}
function trackSearch(qu, param)
{
if (!qu)
return;
var sUrl = "http://search.microsoft.com/us/SearchMS25.asp?qu="+ escape(qu.value) + "&so=RECCNT&boolean=ALL&intCat=0&intCat=1&intCat=2&intCat=3&intCat=4&intCat=5&intCat=6&intCat=7&intCat=8&intCat=9&nq=NEW&p=1";
if (blnTrack)
{
sUrl = "http://www.microsoft.com/isapi/hpredir.asp"
+ ("?type=CT&source=WWW&sPage=" + param + "&tPage=" + sUrl);
if (blnDebug) alert(sUrl);
}
location.href = sUrl;
}
function trackInfoForm(param)
{
if (blnTrack)
{
var sUrl = "http://c.microsoft.com/trans_pixel.gif";
if (blnDebug) alert(sUrl);
// TrackForm.sPage.value = param;
// TrackForm.action = sUrl;
// TrackForm.submit();
}
}
//-----------------------------------------------
var partMover = null;
var isPosition = false;
var orgTop;
var orgLeft;
var frmholder = null;
var zoneLeft = -1;
var zoneTop = -1;
var m_zoneElement = null;
function Document_OnMouseUp()
{
if (!partMover) return;
isPosition = false;
partMover.releaseCapture();
partMover.style.position = 'static';
var m_prtSrc = window.event.srcElement;
if (!CheckXPos(m_zoneElement) || !CheckYPos(m_zoneElement) || !blnMoved)
{
trackInfoForm(("HP_WPFound_"+(blnBorder? "BorderOn" : "BorderOff")));
SetBorderOff();
return;
}
PartSwap();
saveState();
blnMoved = false;
trackInfoForm(("HP_WPSwap_"+(blnBorder? "BorderOn" : "BorderOff")));
SetBorderOff();
event.cancelBubble = true;
}
function RearrangePartPos()
{
m_zoneElement = document.all.item("DashZoneRight");
if (m_zoneElement)
{
var udoLayout = m_zoneElement.document.all("oLayout");
if (!udoLayout)
return false;
udoLayout.load("HPLayoutStore");
for (var i = 0; i < garrLayoutParts.length; i++)
{
var strAttr = udoLayout.getAttribute(garrLayoutParts[i].name);
if (strAttr)
{
var strorder = strAttr.split(',')[1];
if (strorder)
{
if (strorder != garrLayoutParts[i].order)
{
PartSwap();
return true;
}
}
}
}
}
return true;
}
function PartSwap()
{
var oPart= null;
var oPartHolder = null;
var oPartSpacer = null;
var strOriginalLabel = "";
var strReplacingLabel = "";
outerloop:
for (var i=0; i < m_zoneElement.children.length; i++)
{
innerloop:
for (var j=0; j < arrParts.length; j++)
{
var holderDiv = m_zoneElement.all.item(arrParts[j] + "Holder");
strOriginalLabel = arrParts[j];
var replacingDiv = null;
if (j==0)
{
replacingDiv = m_zoneElement.all.item(arrParts[j+1] + "Holder");
strReplacingLabel = arrParts[j+1];
}
else
{
replacingDiv = m_zoneElement.all.item(arrParts[0] + "Holder");
strReplacingLabel = arrParts[0];
}
if (holderDiv)
{
if (m_zoneElement.children.item(i).id == holderDiv.id)
{
var holdernext = holderDiv.nextSibling;
var replacingnext = replacingDiv.nextSibling;
var holdernextnext = holdernext.nextSibling;
var replacingnextnext = replacingnext.nextSibling;
oPartHolder = m_zoneElement.replaceChild(
replacingDiv, holderDiv);
oPart = m_zoneElement.replaceChild(
replacingnext, holdernext);
oPartSpacer = m_zoneElement.replaceChild(
replacingnextnext, holdernextnext);
break outerloop;
}
}
}
}
m_zoneElement.appendChild(oPartHolder);
m_zoneElement.appendChild(oPart);
m_zoneElement.appendChild(oPartSpacer);
for (var i = 0; i < garrLayoutParts.length; i++)
{
if (strReplacingLabel == garrLayoutParts[i].name)
garrLayoutParts[i].order = "0";
if (strOriginalLabel == garrLayoutParts[i].name)
garrLayoutParts[i].order = "1";
}
}
function CheckXPos(obj)
{
if ((partMover.style.pixelLeft + partMover.offsetWidth) < zoneLeft)
return false;
if (partMover.style.pixelLeft > (zoneLeft + obj.offsetWidth))
return false;
return true;
}
function CheckYPos(obj)
{
var movingpart = null;
var part = null;
var partLeft = -1;
var partTop = -1;
for (var k = 0; k < arrParts.length; k++)
{
movingpart = partMover.all.item(arrParts[k]);
if (movingpart)
{
for(var j = 0; j < arrParts.length; j++)
{
part = obj.all.item(arrParts[j]);
if (part && (part != movingpart))
{
partTop = GetAbsoluteTop(part);
if ((partMover.style.pixelTop + 2*partMover.offsetHeight) < partTop)
return false;
if (partMover.style.pixelTop > (partTop + part.offsetHeight))
return false;
}
}
break;
}
}
return true;
}
function SetBorderOff()
{
for (var i = 0; i < arrParts.length; i++)
{
var frm = partMover.all.item(arrParts[i]);
if (frm)
{
setBorder(arrParts[i],false);
break;
}
}
frmholder.style.display = "none";
frmholder.style.height = 0;
}
function Document_OnMouseDown()
{
//--Reinitialize partMover variable
partMover = null;
var m_prtSrc = window.event.srcElement;
var tagName = event.srcElement.tagName.toUpperCase();
if (tagName == "IMG" || tagName == "A")
return;
var m_tabElement = TraverseToClassName(m_prtSrc, "HPFrameTab");
if (!m_tabElement)
return;
var m_classElement = TraverseToClassName(m_prtSrc, "divMoveClass");
if (m_classElement == null)
return;
var strFrame = null;
partMover = m_classElement;
for (var i = 0; i < arrParts.length; i++)
{
var divPart = partMover.all.item(arrParts[i]);
if (divPart)
{
strFrame = divPart.id;
break;
}
}
m_zoneElement = TraverseToClassName(m_prtSrc, "DashZoneRight");
if ((zoneLeft == -1) || (zoneTop == -1))
{
zoneLeft = GetAbsoluteLeft(m_zoneElement);
zoneTop = GetAbsoluteTop(m_zoneElement);
}
frmholder = m_zoneElement.all.item(strFrame + "Holder");
frmholder.style.height = partMover.offsetHeight;
frmholder.style.display = "inline";
partMover.style.position = 'absolute';
partMover.style.width = partMover.offsetWidth;
partMover.style.pixelLeft = event.x;
partMover.style.pixelTop = event.y;
orgLeft = partMover.style.pixelLeft;
orgTop = partMover.style.pixelTop;
partMover.style.display = "block";
event.cancelBubble = true;
isPosition = true;
partMover.setCapture();
}
function Document_OnMouseMove()
{
if(!isPosition || !partMover)
return;
partMover.style.pixelLeft = event.x;
partMover.style.pixelTop = event.y;
event.cancelBubble = true;
blnMoved = true;
}
function TraverseToClassName(srcElement,ClassName)
{
while(srcElement.className != ClassName)
{
srcElement = srcElement.parentElement;
if (srcElement == null)
return null;
}
return srcElement;
}
function GetAbsoluteTop(elem)
{
var topPosition = 0;
while (elem)
{
if (elem.tagName == 'BODY')
{
break;
}
topPosition += elem.offsetTop;
elem = elem.offsetParent;
}
return topPosition;
}
function GetAbsoluteLeft(elem)
{
var leftPosition = 0;
while (elem)
{
if (elem.tagName == 'BODY')
{
break;
}
leftPosition += elem.offsetLeft;
elem = elem.offsetParent;
}
return leftPosition;
}
function QueryString(sName)
{
var sSource = String(window.document.location);
var sReturn = "";
var sQUS = "?";
var sAMP = "&";
var sEQ = "=";
var iPos;
iPos = sSource.indexOf(sQUS);
var strQuery = sSource.substr(iPos, sSource.length - iPos);
var strLCQuery = strQuery.toLowerCase();
var strLCName = sName.toLowerCase();
iPos = strLCQuery.indexOf(sQUS + strLCName + sEQ);
if (iPos == -1)
{
iPos = strLCQuery.indexOf(sAMP + strLCName + sEQ);
if (iPos == -1)
return "";
}
sReturn = strQuery.substr(iPos + sName.length + 2,
strQuery.length-(iPos + sName.length + 2));
var iPosAMP = sReturn.indexOf(sAMP);
if (iPosAMP == -1)
return sReturn;
else
{
sReturn = sReturn.substr(0, iPosAMP);
}
return sReturn;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -