1

Тема: JS GetAbsolutePathName что должно вернуться?

var way=fso.GetAbsolutePathName("");

В CHM возвращает путь к папке программы.
В браузере на движке ИЕ(Avant), тоже возвращает путь к папке программы.
В самом ИЕ возвращает путь к рабочему столу.

Как в ИЕ получить путь к папке программы?
XP IE8.

Спасибо.

2

Re: JS GetAbsolutePathName что должно вернуться?

Любитель пишет:

Как в ИЕ получить путь к папке программы?

>

var way = WScript.CreateObject("InternetExplorer.Application").Path;

3

Re: JS GetAbsolutePathName что должно вернуться?

Спасибо, но как это в браузере использовать?

4

Re: JS GetAbsolutePathName что должно вернуться?

Спасибо, но как это в браузере использовать?

Без «WScript»:

var way = CreateObject("InternetExplorer.Application").Path;

5

Re: JS GetAbsolutePathName что должно вернуться?

alexii пишет:

Без «WScript»:

С ним пишет,  'WScript' - определение отсутствует
Без него, Предполагается наличие объекта

6

Re: JS GetAbsolutePathName что должно вернуться?

new ActiveXObject ?

7

Re: JS GetAbsolutePathName что должно вернуться?

Serge Yolkin пишет:

new ActiveXObject ?

Точно. Я был неправ. Это ж JScript.

8

Re: JS GetAbsolutePathName что должно вернуться?

new ActiveXObject ?

А то что происходит с ним, я написал в первом посту, это и был вопрос.

9

Re: JS GetAbsolutePathName что должно вернуться?

С кем "с ним"?

alert(new ActiveXObject("InternetExplorer.Application").Path);

для локального .html файла выдаёт

---------------------------
Сообщение с веб-страницы
---------------------------
C:\Program Files\Internet Explorer\
---------------------------
ОК   
---------------------------

после двух предупреждений безопасности, для файла в инете, скорее всего, не будет работать совсем. Но, в этом случае, и с fso будут проблемы.

10

Re: JS GetAbsolutePathName что должно вернуться?

Serge Yolkin, вы вопрос перечитайте внимательней, мы о разных папках говорим.

11

Re: JS GetAbsolutePathName что должно вернуться?

Любитель пишет:

Serge Yolkin, вы вопрос перечитайте внимательней, мы о разных папках говорим.

Не вижу противоречия:

Serge Yolkin пишет:
new ActiveXObject("InternetExplorer.Application").Path
Любитель пишет:

Как в ИЕ получить путь к папке программы?

Забыл пароль и потерял e-mail.

12

Re: JS GetAbsolutePathName что должно вернуться?

Не вижу противоречия:

Папка из которой стартовала программа.

Хотя уже понятно, здесь нет решения.

13

Re: JS GetAbsolutePathName что должно вернуться?

Serge Yolkin, вы вопрос перечитайте внимательней, мы о разных папках говорим.

Любитель, так пишите так, чтобы было понятно. О какой папке идёт речь? Какая программа стартовала?

14

Re: JS GetAbsolutePathName что должно вернуться?

Что значит "папка из которой стартовала программа"?!
Есть папка в которой находится исполняемый файл и есть текущуя рабочая папка, которая для одной и той же программы может быть разной в зависимости от способа запуска: щелчка по исполняемому файлу в проводнике, через ярлык, из командного файла, по ассоциации в реестре...
И какая разница, какая папка была рабочей в момент запуска IE: если нужна какая-то определённая - установите её сами (если не ошибаюсь - WshShell.CurrentDirectory),  если нужна папка просматриваемого html-файла - используйте объект location или document.URL.

Забыл пароль и потерял e-mail.

15

Re: JS GetAbsolutePathName что должно вернуться?

Папка из которой стартовал html файл. И это должно работать в браузере.

var w, fso;
fso=new ActiveXObject("Scripting.FileSystemObject");
w=fso.GetAbsolutePathName("");
alert(w);

если этот html файл упаковать в chm и запустить из любого места, то вернется папка из которой этот chm стартовали
если использовать браузер на движке ИЕ, то тоже вернется папка из которой этот html стартовали
если запустить файл в самом ИЕ, то он вернет путь к рабочему столу, а мне нужна папка из которой html запустили
почему ИЕ возвращает другой путь?

как то так, лучше не умею, все мы люди и все мы разные

16

Re: JS GetAbsolutePathName что должно вернуться?

<script language=javascript>
alert(GetAbsolutePathName());

function GetAbsolutePathName(){
    var pathname = document.location.pathname;
    return pathname.substring(1,pathname.lastIndexOf("/")).replace(/\//g,"\\");
}
</script>

Не вариант ? На JS пишу коряво, так что наверняка можно всё это короче "нарисовать" используя только regexp.

Передумал переделывать мир. Пашет и так, ну и ладно. Сделаю лучше свой !