Javascript code does not display the desired output

I wrote code to display my favorites in IE8, but for some unknown reason I have no way out on the screen, despite the fact that my page is accepted by IE and that the test text "this test" is displayed.

my code is:

<html>
   <head>
   <meta http-equiv="Content-Type" content="text/html; charset=iso 8859-1" />

   <script type="text/javascript">
        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; // Not working !
                    favorites.innerHTML += 'test'; // Not working too !
                    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 ");
            }
        }
   </script>

   </head>

   <body onload="Import()">

      <p>this is a test</p>     <!-- Working ! -->

      <div id="favorites">
      </div>
   </body>

</html>
0
source share
2 answers

The following works for me:

var fso, favs = [];
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);
            favs.push(favString);
        }
    }
    //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 ");
    }
}

Note that all I changed is the output of the element from the array with the name favs. I also deleted the variable ibecause it was not used. After running the script, I checked the array in the developer tools console and contained all of my favorites.

+1
source

, fso null Import, files.AtEnd() false. IE , (, alert(fso);) .

0

All Articles