在windows update中点击"添加更新组件"后,会有一个动画的矩形曲线从添加按钮飞到组件列表上,如何实现呢?

iProgram 2004-11-12 10:04:58
在windows update中点击"添加更新组件"后,会有一个动画的矩形曲线从添加按钮飞到组件列表上,当然使用javascript实现的,可惜windows update网站包裹的太严实了,根本看不到代码,怎么是现代麽呢?该不是把一个div rect改变位置吧?
...全文
193 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
是是非非 2004-11-13
  • 打赏
  • 举报
回复
只是一个动态改变DIV的宽高和位置的过程而已

获取一个元素的位置和尺寸早已不是难事
iProgram 2004-11-13
  • 打赏
  • 举报
回复
我看了一下windows update(通过删除我机器内的一个windows update补丁), 发现它那个不是js实现的,而是activex.

to eglic: 如何得到已知id的屏幕x和y?
duoduobaba 2004-11-13
  • 打赏
  • 举报
回复
function fnSwitchSites(bCorporate){
g_bCorporate = bCorporate;
if(bCorporate){
if("function" == typeof(fnInitDetect)){
eContent.location.replace(conCatalogURL + "initial.asp");
}else{
fnLoadJS();
}
}else if(g_bDetectedItems){
fnDisplayAvailableUpdates();
}else{
fnDisplaySplashPage(conSplashWelcome);
}
}

function fnLoadJS(){
top2.src = "/shared/js/top2.js";
}

function fnInitTopJS(){
if(typeof(g_bCorporate) == "undefined") return false;

if(!g_bCorporate){
if(g_bScanning) fnInitDetect();
}else{
if(window.location.href.indexOf("/catalog/") == -1) eContent.location.replace(conCatalogURL + "initial.asp");
}
}

/* init */
/* detection */

function fnScan(){
fnRetry("'function' == typeof(eTOC.fnInitDetectUpdates) && 'function' == typeof(eTOC.fnEnableTOC) && g_oCatalogXML != null && g_oCatalogXML.selectSingleNode('systemInfo') != null", "if(!g_bScanning) fnInitScan();", "fnReloadSite();", 1000, 5);
}

function fnReloadSite(){
if(window.confirm(L_ReloadingSiteText_Text)){
fnScan();
}else{
window.location.reload();
}
}

function fnInitScan(){
var sOSID;

g_bScanning = true;
eTOC.fnInitDetectUpdates();

if(eContent.g_iPage == conSplashPage && eContent.g_iSubPage == conSplashWelcome){
eContent.eSplashWelcome.style.display = "none";
eContent.eSplashScanning.style.display = "block";
}else{
fnDisplaySplashPage(conSplashScanning);
}

if("function" == typeof(fnInitDetect)){
if(g_bDetectedItems){
sOSID = g_oCatalogXML.selectSingleNode("provider/product[category = '" + conCategoryOS + "']/identity/@itemID").text;
eTOC.document.all[sOSID].id = "eWindowsUpdates";

eTOC.fnEnableLink(eTOC.eCriticalUpdates, false);
eTOC.fnEnableLink(eTOC.eWindowsUpdates, false);
eTOC.fnEnableLink(eTOC.eDriverUpdates, false);
eTOC.fnEnableLink(eTOC.eBasketUpdates, false);
xmlRemoveNodes(g_oCatalogXML, ["provider"]);
fnClearSite();
}

window.setTimeout("fnInitDetect();", 0);
}else{
window.setTimeout("fnLoadJS();", 0);
}
}

/* detection */
/* dialogs */

function fnShowReadMore()
{
strUrl = event.srcElement.readMoreUrl;
iTop = (document.body.clientHeight - 400)/2;
iLeft = (document.body.clientWidth - 400)/2;
window.open(strUrl, "_blank", "directories=no,width=400,height=400,left=" + iLeft + ",top=" + iTop + ",location=no,menubar=yes,status=no,toolbar=no,resizable=yes,scrollbars=yes");
event.returnValue = false;
}

function fnDisplayDetails(sDetailsURL){
var iTop, iLeft;

if(g_bCorporate){
if(g_oPopup) g_oPopup.close();
g_oPopup = window.showModelessDialog(conCatalogURL + "itemdetails.asp?id=" + sDetailsURL, [window], "dialogWidth:505px;dialogHeight:345px;help:no;scroll:no;status:no;");
}else{
iTop = (document.body.clientHeight - 400)/2;
iLeft = (document.body.clientWidth - 400)/2;
window.open(sDetailsURL, "_blank", "directories=no,width=400,height=400,left=" + iLeft + ",top=" + iTop + ",location=no,menubar=yes,status=no,toolbar=no,resizable=yes,scrollbars=yes");
}
}

/* dialogs */
/* display content */

function fnDisplayErrorPage(iError, bDisableTOC, sErrorDetails){
try{
if(bDisableTOC) eTOC.fnDisableTOC(iError, sErrorDetails);
sErrorDetails = (sErrorDetails == null) ? "" : "&details=" + sErrorDetails;
eContent.location.replace(conConsumerURL + "error.asp?error=" + iError + sErrorDetails + "&corporate=" + g_bCorporate + "&" + conQueryString);
}catch(e){}
}

function fnDisplaySplashPage(iPage){
g_iSplashPage = iPage;
eContent.location.replace(conConsumerURL + "splash.asp?page=" + iPage + "&x86=" + g_bX86 + "&auenabled=" + g_bAutoUpdateEnabled + "&" + conQueryString);
}

duoduobaba 2004-11-13
  • 打赏
  • 举报
回复
window.setTimeout("fnInit();", 0);
return false;
}


g_sRegionalSettings = ""; // initialize all the global variables
g_sDownloadPath = "";
g_bDownloading = false;
g_bInstalling = false;
g_bNeedsReboot = false;
g_bPosted = false;
g_bScanning = false;
g_bPersonalizing = false;
g_bDetectedItems = false;
g_bSaveXML = false;
g_bSall = false;
g_bSinst = false;
g_bOnSplashPage = false;
g_bAutoUpdateEnabled = false;
g_bX86 = (window.navigator.cpuClass == "x86");
g_iConnectionSpeed = 0;
g_iConsumerBasketCount = 0;
g_iConsumerBasketSize = 0;
g_bCorporate = (eTOC.location.href.indexOf("corporate=true") != -1);

eTOC.fnInitTOC(); // writes the onmouseevent of all links in toc.asp

sCurrentURL = eContent.location.href.toLowerCase();
sWelcomePage = "http://" + window.location.host + conConsumerURL + "splash.asp?page=" + conSplashCheckingControl + "&corporate=" + g_bCorporate + "&" + conQueryString;
sErrorPage = "http://" + window.location.host + conConsumerURL + "error.asp?error=" + conErrorControlUpdateFailed + "&corporate=" + g_bCorporate + "&" + conQueryString;

if(window.location.search.indexOf("page=") == -1 && !g_bControlInitialized && sCurrentURL != sWelcomePage && sCurrentURL != sErrorPage){ // this is to display Control checking page when user backs in to the website
fnDisplaySplashPage(conSplashCheckingControl);
}else{
g_iSplashPage = conSplashWelcome;
g_bOnSplashPage = true;
}
}

function fnCreateCatalogXML(){ // creates an empty catalog xml
CatalogXML = xmlNewXML();
CatalogXML.loadXML("<catalog />");
g_oCatalogXML = CatalogXML.documentElement;
fnDetectSystemSpecs();
}

function fnDetectSystemSpecs(){
var sXML, oXML, oRoot, oAdminAttribute, bNotAdmin, sOSLocale, oRegExp;

sXML = control_GetSystemSpec("<classes><computerSystem /><platform /><locale /></classes>");
if(sXML == false) return false;

oXML = xmlNewXML();
oXML.loadXML(sXML);
oRoot = oXML.documentElement;

oRegExp = /^sk|sl|el_ibm|en_arabic|en_hebrew|en_thai/i;
sOSLocale = oRoot.selectSingleNode("locale[@context = 'OS']/language").text;
if(oRegExp.test(sOSLocale)){
window.location.href = "http://windowsupdate.microsoft.com/Static_Locale/V31site";
return false;
}

if(oRoot.selectSingleNode("computerSystem[@windowsUpdateDisabled = '1']") != null){ // if windows update is disabled by policy setting
fnDisplayErrorPage(conErrorDisabled, true);
return false;
}

if(conWinNT){
if(oRoot.selectSingleNode("platform/productType[suite = 'VER_SUITE_DATACENTER']") != null){ // if it is a datacenter show thanks page
window.location.replace(conConsumerURL + "thanks.asp?os=dtc");
}else{
oAdminAttribute = oRoot.selectSingleNode("computerSystem/@administrator");
bNotAdmin = (oAdminAttribute != null && oAdminAttribute.text != "1"); // check if the user is admin or not on the local machine

if(bNotAdmin){
fnDisplayErrorPage(conErrorNotAdmin, true);
eTOC.eWelcome.href = conConsumerURL + "error.asp?error=" + conErrorNotAdmin + "&" + conQueryString;
eTOC.eWelcome.onclick = null;
eTOC.fnEnableLink(eTOC.eAvailableUpdates, false); // disable link
return false;
}
}
}

if(!g_bCorporate){
oOEMURL = oRoot.selectSingleNode("computerSystem/@supportSite");
if(oOEMURL != null && oOEMURL.text != ""){
fnRetry("'object' == typeof(eTOC) && 'function' == typeof(eTOC.fnEnableHardwareSupportLink)", "eTOC.fnEnableHardwareSupportLink('" + fnValidateURL(oOEMURL.text) + "');", "", 1000, 4);
}
}

oRoot.selectSingleNode("locale[@context = 'USER']/language").text = conLangCode;
g_bAutoUpdateEnabled = (oRoot.selectSingleNode("computerSystem[@autoUpdateEnabled != '1']") == null);
g_bOSIsServer = (oRoot.selectSingleNode("platform[productType = 'VER_NT_SERVER']") != null);

eTOC.fnInitUserData();
if(eTOC.g_oUserData != null) eTOC.fnEnableCatalogLink();

g_sComputerSystemBlob = oRoot.selectSingleNode("computerSystem").xml // we would insert this blob for all item/printer queries

try{
xmlCopyNode(oRoot, g_oCatalogXML);
}catch(e){
fnDisplayErrorPage(conErrorOther, true, UPDATE_ERROR_Q269688);
return false;
}

if(g_bCorporate){
eContent.location.replace(conCatalogURL + "initial.asp");
}else if(conCriticalUpdatesMode){
fnInitScan();
}else{
fnDisplaySplashPage(conSplashWelcome);
}

if(g_bSaveXML) top.fnSaveXML(oXML.xml, "SystemSpecXML");
if(g_bSaveXML) top.fnSaveXML(CatalogXML.xml, "SystemSpecXML-CatalogXML");

if("function" == typeof(fnInitWebIQ) && conLangCode == "en") window.setTimeout("fnInitWebIQ();", 0);
}
duoduobaba 2004-11-13
  • 打赏
  • 举报
回复
/* constants */

var conOtherPage = -1;
var conOtherSubPage = -1;

var conErrorPage = 0;
var conSplashPage = 1;
var conResultsPage = 2;
var conThanksPage = 3;
var conHistoryPage = 4;
var conAboutPage = 5;
var conSupportPage = 6;
var conStatusPage = 7;
var conEULAPage = 9;
var conDownloadPage = 10;
var conLearnAboutPage = 11;
var conPersonalizationPage = 12;

var conErrorOther = -1;
var conErrorNone = 0;
var conErrorNoScripting = 1;
var conErrorNoActiveX = 2;
var conErrorNotAdmin = 3;
var conErrorDisabled = 4;
var conErrorNoControl = 5;
var conErrorOldControl = 6;
var conErrorOldEngine = 7;
var conErrorControlFailed = 8;
var conErrorControlUpdateFailed = 9;
var conErrorInstallationCanceled = 10;
var conErrorDiskFull = 11;
var conErrorProxy = 12;
var conErrorNetwork = 13;
var conErrorServer = 14;
var conErrorBannedVLK = 15;

var conResultsCritical = 0;
var conResultsProduct = 1;
var conResultsBasket = 2;
var conResultsDrivers = 3;

var conSplashCheckingControl = 0;
var conSplashInstallingControl = 1;
var conSplashInstallingEngine = 2;
var conSplashWelcome = 3;
var conSplashScanning = 4;

var conSplashPickUpdatesCritical = 5;
var conSplashPickUpdatesCriticalAndOther = 6;
var conSplashPickUpdatesOther = 7;
var conSplashPickUpdatesNone = 8;
var conSplashInstallingWait = 9;

var IU_INIT_CHECK = 0;
var IU_INIT_UPDATE_ASYNC = 2;
var IU_UPDATE_OK = 0;
var IU_UPDATE_CONTROL_BIT = 1;
var IU_UPDATE_ENGINE_BIT = 2;
var IU_UPDATE_CONTROL_AND_ENGINE_BIT = 3;
var UPDATE_COMMAND_CANCEL = 0x0000004;
var UPDATE_CORPORATE_MODE = 0x0000200;
var UPDATE_NOTIFICATION_ANYPROGRESS = 0x0000000;
var ERROR_INVALID_PROPERTY = -2146827850;
var UPDATE_ERROR_ACCESS_DENIED = -2146828218;
var UPDATE_ERROR_Q269688 = -2147217422;
var WIN32_ERROR_DISK_FULL = -2147024784;
var WIN32_ERROR_SERVICE_DISABLED = -2147023838;
var WIN32_ERROR_NETWORK_ACCESS_DENIED = -2147024831;
var WIN32_ERROR_ACCESS_DENIED = -2147024891;
var WIN32_ERROR_ACCESS_DENIED2 = -2147483639;
var WIN32_ERROR_CANCELLED = -2147023673
var ERROR_FILE_NOT_FOUND = -2147024894
var ERROR_PATH_NOT_FOUND = -2147024893
var ERROR_CANNOT_MAKE = -2147024814
var ERROR_WRITE_PROTECT = -2147024877
var ERROR_WRITE_FAULT = -2147024867
var HTTP_STATUS_LENGTH_REQUIRED = -2147024485;
var HTTP_STATUS_PROXY_AUTH_REQ = -2147024489;
var HTTP_STATUS_GATEWAY_TIMEOUT = -2147024392;
var HTTP_ERROR_502 = -2145844746;
var ERROR_INTERNET_NAME_NOT_RESOLVED = -2147012889;
var ERROR_INTERNET_CANNOT_CONNECT = -2147012867;
var ERROR_INTERNET_CONNECTION_RESET = -2147012865;
var ERROR_OPERATION_ABORTED = -2147467260;
var WIN32_PATH_NOT_FOUND = -2147024893;
var WIN32_INVALID_URL = -2146697214;
var WIN32_CANNOT_DOWNLOAD = -2146697208;
var WIN32_SUBJECT_NOT_TRUSTED = -2146762748;

/* constants */
/* global variables */

var CatalogXML, g_oCatalogXML, g_oInstallationXML, g_oControl, g_oPopup, g_oDownloadPopup;
var g_sExclusiveUpdateTitle, g_sRegionalSettings, g_sUUIDOperation, g_sDownloadPath, g_sOperationResultXML;
var g_iCatalogBasketCount, g_iConsumerBasketCount, g_iConsumerBasketSize, g_iConnectionSpeed, g_iSplashPage, g_iOnProgressTimer;
var g_bPosted, g_bScanning, g_bDetectedItems, g_bOnSplashPage, g_bPersonalizing, g_bEULAAccepted, g_bX86, g_bOSIsServer, g_bSaveXML, g_bSall, g_bSinst, g_bNeedsReboot, g_bAutoUpdateEnabled, g_bDownloading, g_bInstalling, g_bCancelInstall;
var g_aProductIDs, g_aDependencies, g_sComputerSystemBlob,g_bBannedVLK,g_bCatalogDenied;
var g_bControlInitialized = false;
var g_bDriversFailed = false ;


/* global variables */
/* init */

function window.onload(){
fnInit();
}

function window.onbeforeunload(){
if(g_oDownloadPopup != null) return L_CancelInstall2_Text;
}

function window.onunload(){
control_SetOperationMode("", UPDATE_COMMAND_CANCEL);
}

function fnInit(){
var sCurrentURL, sWelcomePage, sErrorPage;

if("undefined" == typeof(conQueryString) || "object" != typeof(eContent) || "object" != typeof(eTOC) || "function" != typeof(eTOC.fnDisableTOC)){
iProgram 2004-11-12
  • 打赏
  • 举报
回复
to flyskytoday:
我想看都看不了,因为是windows update网站, 现在没有可用更新...
iProgram 2004-11-12
  • 打赏
  • 举报
回复
怎么让他动起来?例如从<input type="button" id="test" value="Add">这个按钮飞出一个rect到另一个按钮:<input type="button" id="object" value="Install">.
这两个按钮在屏幕中的位置是不固定的,换句话说首先还要得到这两个按钮的位置,然后让这个div从id=test按钮飞到id=object按钮, 因为两个按钮长宽不等, 可能还要动态调整div的height和weight才能实现微软的那个效果? 如何"用一个div就可以做到"?
flyskytoday 2004-11-12
  • 打赏
  • 举报
回复
一个简便实用地方法

先把要打开地网页打开,然后清空IE缓存,然后再刷新刚才地网页

这样刚才调用地东东包括看到地未看到地都在缓存中了,拷贝下来自己慢慢看吧:)
是是非非 2004-11-12
  • 打赏
  • 举报
回复
用一个DIV就可以做到了

87,909

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧