Javascript code not accepted by validator (JSHint)

I wrote code to display my bookmarks in IE8. To check this, I 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 anyone know why?

my code is:

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



function GetFavourites(Folder)
{
var FavFolder=fso.GetFolder(Folder);
//Gets Favourite Names & URL 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 ");
}
}
+3
source share
5 answers

jslint javascript , IE, Enumerator ActiveXObject , , .

IE, .

, Enumerator, ActiveXObject .

+2

Enumerator ActiveXObject , . JSHint , JavaScript:

/*global Enumerator: false, ActiveXObject: false */
+6

Enumerator , ActiveXObject - Microsoft. (Enumerator , , Windows Scripting Host.) JSHint , .

+1

Both of them are specific to IE, perhaps the parser has the flag "IE"? Other than that, you will need to somehow define them if you really want your code to go through.

+1
source

I do not if this is the right way to do, but it works for me

"predef": ["XDomainRequest","ActiveXObject"]

I added this to my .jshintrc.

0
source

All Articles