Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Javascript code not accepted by validator (JSHint)

I've written some code to display my bookmarks in IE8. To check it I've used JSHint and I get the following errors :

  • var files=new Enumerator(FavFolder.Files); 'Enumerator' is not defined. (Line 14)
  • Enumerator(FavFolder.SubFolders); 'Enumerator' is not defined. (Line 34)
  • ActiveXObject("Scripting.FileSystemObject"); 'ActiveXObject' is not defined. (Lines 46)
  • ActiveXObject("WScript.Shell"); 'ActiveXObject' is not defined. (Line 50)

Does someone know why ?

my code :

var i=0;
var favString="";
var fso;



function GetFavourites(Folder)
{
var FavFolder=fso.GetFolder(Folder);
//Gets Favourite Names & URL's for given folder.
var files=new Enumerator(FavFolder.Files);
for(; !files.atEnd() ;files.moveNext())
{
var fil=files.item();
if(fil.Type=="Internet Shortcut")
{
var textReader=fso.OpenTextFile(fil.Path,1,false,-2);
var favtext=textReader.ReadAll();
var start=favtext.indexOf("URL",16);
var stop=favtext.indexOf("\n",start);
favString+=fil.Name.replace(/.url/,"");
favString+=":URL:";
//to separate favourite name & favorite URL
favString+=favtext.substring(start+4,stop-1);
favorites.innerHTML+=favString;
favString+=":NEXT:"; //to separate favorites.
i++;
}
}
//Checks any subfolder exists
var subfolders=new Enumerator(FavFolder.SubFolders);
for(; !subfolders.atEnd() ;subfolders.moveNext())
{
var folder=subfolders.item();
GetFavourites(folder.Path);
}
}

function Import()
{
try
{
fso=new ActiveXObject("Scripting.FileSystemObject");
if(fso !==null )
{
//Create windows script shell object to access Favorites folder in user system.
var object=new ActiveXObject("WScript.Shell");
var favfolderName=object.SpecialFolders("Favorites");
if(favString==="")
{
GetFavourites(favfolderName);
}
} 
}
catch(err)
{
alert("Security settings to be modified in your browser ");
}
}
like image 290
Bruno Avatar asked Aug 13 '26 15:08

Bruno


1 Answers

Enumerator and ActiveXObject are globals that are defined externally. You can tell JSHint to ignore these by putting the folllowing at the top of your JavaScript:

/*global Enumerator: false, ActiveXObject: false */
like image 158
James Wiseman Avatar answered Aug 15 '26 05:08

James Wiseman



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!