Javascript, возвращающий пустой массив (который не должен) в IE - PullRequest
0 голосов
/ 12 мая 2011

Я написал некоторый код для отображения моих закладок на IE8. Код работает нормально, за исключением массива избранного, который у меня должен быть ("favs"), поскольку вывод существует, но он пуст (когда я помещаю "favs" в консоль инструментов разработчика, я получаю {...}).

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

1 Ответ

1 голос
/ 12 мая 2011

Я обнаружил, где моя ошибка: я забыл, что я использую IE на французском языке, поэтому тест "if (fil.Type ==" Internet Shortcut ")" не работает; Я должен заменить «Internet Shortcut» на французский эквивалент «Raccourci Internet». : -))

...