我正在嘗試修復某人在我的公司創建的3到4年前.hta。現在,如果您打開某個其他人已經打開的文件,您將失去已完成的任何工作,並且必須手動重新執行。所以我只是想檢查一下,看看這個文件是否已經打開,然後鎖定編輯,或者只是彈出一個說:「嘿,如果你試圖拯救你會失望」。有沒有簡單的方法來檢查該文件是否已經在JavaScript中打開?檢測文件是否已在javascript/hta中打開
打開該文件的代碼是...
function FileOpen(strSetup)
{
if(! strSetup)
{
strSetup = ShowDialog("choose-setup", {"DialogTitle" : "Load Setup"});
}
if(strSetup)
{
if(FileSystem.FileExists(App.Paths.Configs + "/" + strSetup + ".setup"))
{
var fFile = FileSystem.GetFile(App.Paths.Configs + "/" + strSetup + ".setup");
App.Config = LoadXMLDocument(fFile.Path);
// SaveCurrentConfig();
RefreshView("setup-summary");
}
else
{
alert("Could not find setup '" + strSetup + "'");
}
}
}
和LoadXMLDocument代碼...
//-----------------------------------------------------------------------------
// FUNCTION : LoadXMLDocument - Loads an XML document
// params : strPath - the path/file of the document to load
// : bCritical- if set true, we die if the document doesn't load
// returns : an XML dom object on success, false otherwise
//-----------------------------------------------------------------------------
function LoadXMLDocument(strPath, bCritical)
{
var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.3.0");
xmlDoc.setProperty("SelectionLanguage", "XPath");
if(! FileSystem.FileExists(strPath))
{
Error("'" + strPath + "' is not a valid file path");
if(bCritical) Abort();
return(false);
}
var fFile = FileSystem.GetFile(strPath);
xmlDoc.load(fFile.Path);
if(xmlDoc.documentElement == null)
{
Error("Could not load XML document '" + fFile.Path + "'");
if(bCritical) Abort();
return(false);
}
return(xmlDoc);
}