Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
2 / 2 / 0
Регистрация: 23.08.2013
Сообщений: 71
1

как корректно произвести конкатенацию?

25.05.2014, 01:32. Просмотров 567. Ответов 6
Метки нет (Все метки)

Есть такой файлменеджер (рекомендую) - Q-dir
Чтобы вызвать его по javascript-ссылке на веб странице, причем так чтобы он (находится - D:\programs\Q-Dir\Q-Dir.exe) открыл при этом определенную папку (у меня - D:\test) я применяю такой скрипт:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<html>
<head>
<title>Execute from Web</title>
<script language="JScript">
function runQdir() {
  var Myshell = new ActiveXObject("WScript.Shell");
  var myApp = "D:\\programs\\Q-Dir\\Q-Dir.exe [B]D:\\test[/B]"
  Myshell.Run(myApp);
}
</script>
</head>
<body>
<input type="button" value="Q-dir" onclick="runQdir()" />
</body>
</html>
Однако хотелось бы сделать функцию runQdir() функцией с параметром runQdir(path) так чтобы path принимал значение равное требуемой папке, типа такого
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<html>
<head>
<title>Execute from Web</title>
<script language="JScript">
function runQdir([B]path[/B]) {
  var Myshell = new ActiveXObject("WScript.Shell");
  var myApp = "D:\\programs\\Q-Dir\\Q-Dir.exe [B]path[/B]"
  Myshell.Run(myApp);
}
</script>
</head>
<body>
<input type="button" value="Q-dir" onclick="runQdir([B]path[/B])" />
</body>
</html>
Однако такой скрипт не работает. Как мне его поправить. По-видимому через конкатенацию, но я не силен теме.
Прошу помощи
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.05.2014, 01:32
Ответы с готовыми решениями:

Как выполнить конкатенацию строк в JS?
Задача собстно вот в чем. Я динамически создаю блок с помощью JQ: var html = '&lt;div...

Как корректно произвести арифметические операции
Здравствуйте. Нужно задать на масме формулу (a+1)/(a-1) + c*d. Деление я допустим сделал. Для...

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

как получить конкатенацию времени?
как системное время получить в с++(не билдер) и преобразовать в int т.е. время 12:41:37 в int...

6
супермизантроп
Эксперт JS
3851 / 2931 / 684
Регистрация: 18.04.2012
Сообщений: 8,531
25.05.2014, 01:37 2
Javascript
1
var myApp = "D:\\programs\\Q-Dir\\Q-Dir.exe" + path;
0
2 / 2 / 0
Регистрация: 23.08.2013
Сообщений: 71
25.05.2014, 02:16  [ТС] 3
так не получается, path в такой ситуации помещается вне кавычек
Тут нужно как-то очень хитро разрезать строку, экранируя кавычки - я видел аналогичный пример с другим приложением но перенести его на мой случай не могу
0
супермизантроп
Эксперт JS
3851 / 2931 / 684
Регистрация: 18.04.2012
Сообщений: 8,531
25.05.2014, 02:47 4
ruslaw, запустите в браузере и посмотрите:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<html>
<head>
<title>Execute from Web</title>
<script>
function runQdir (path)
{
var Myshell = new ActiveXObject ('WScript.Shell');
var myApp = 'D:\\programs\\Q-Dir\\Q-Dir.exe ' + path;
Myshell.Run (myApp);
}
</script>
</head>
<body>
<input type="button" value="Q-dir" onclick="runQdir ('D:\\test')" />
</body>
</html>
0
2 / 2 / 0
Регистрация: 23.08.2013
Сообщений: 71
25.05.2014, 16:31  [ТС] 5
Получилось!
Огромное спасибо!!!

Добавлено через 13 часов 24 минуты
А что делать если папка имеет название с пробелом, например 'D:\\test plus'
???
Для функции без аргумента у меня в таком случае работает строка кода:
var myApp = 'D:\\programs\\Q-Dir\\Q-Dir.exe "D:\\test plus"'
0
супермизантроп
Эксперт JS
3851 / 2931 / 684
Регистрация: 18.04.2012
Сообщений: 8,531
25.05.2014, 16:40 6
-- либо вместо пробела в инпуте самому "воткнуть" %20
<input type="button" value="Q-dir" onclick="runQdir ('D:\\test%20plus')" />

-- либо в функции воспользоваться методом
var myApp = 'D:\\programs\\Q-Dir\\Q-Dir.exe ' + encodeURIComponent (path);

-- либо в функции применить кавычки
var myApp = 'D:\\programs\\Q-Dir\\Q-Dir.exe "' + path + '"';

-- либо в инпуте применить так понравившиеся вам заэкранированные кавычки
<input type="button" value="Q-dir" onclick="runQdir ('\"D:\\test plus\"')" />
0
2 / 2 / 0
Регистрация: 23.08.2013
Сообщений: 71
25.05.2014, 17:09  [ТС] 7
Спасибо болшущее! Помог третий метод, он же и самый удобный.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.05.2014, 17:09

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как приметить конкатенацию в данном примере
Уважаемые форумчяне и модераторы, а также гуру Возникла очередная проблема Необходимо отправить...

Как сделать конкатенацию двух строк
Объясните пожалуйста как сделать конкатенацию 2-х строк. И если можете приведите примеры, заранее...

Как сделать конкатенацию с определенным количеством символов
Здравствуйте, подскажите, пожалуйста, как сделать канкатенацию с определенным кол-ом символов....

Как сделать конкатенацию двух строк, введенных с клавиатуры?
или хотя б как узнать реальную длину строки после ввода? enter там будет? можна узнать длину если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.