Помогите с кодом JS не работает плагин Chrome

Кирилл

Команда форума
Администратор
Ассоциация VN
Сообщения
14,069
Реакции
5,784
Сабж:
Заколебался с js -никогда с ним не сталкивался,а быстро вникнуть не получается.
Код:
chrome.contextMenus.create( 
 {"title": "Запустить командную строку",  
   "type": "normal",
     "contexts": ["All"], 
      "onclick": getClickHandler() 
   } 
  ); 
  
  function getClickHandler(e)  { var WshShell = WScript.CreateObject("WScript.Shell");
Uncaught ReferenceError: WScript is not defined
WshShell.Run("C:\Windows\System32\cmd.exe"); };


Че делаю:
Плагин для браузера ,который покажет собственное контексное меню.
Сюда будет входить перечень шаблонов ,запуск командной строки и нескольких программ.
Пока плагин завязан на сайте(установил ограничение).

Вот блин.
В чем ошибка в данном коде?
 
Щас так выглядит,ну значок потом покрасивее сделаю. Безымянный.jpg
Нажимая правой кнопкой мыши в браузере хочу иметь свое меню.
 
Последнее редактирование:
Я не знаю как надо-это то что у меня получилось)))
Пиво и несколько часиков с букварем-я никогда не использовал js поэтому даже не совсем понимаю как надо.
Надо что бы я нажал на пункт в меню и произошел запуск командной строки.
Следующие пункты это работа с буфером обмена,но пока что хоть это разобрать...
 
Ага ,щас скомпиллирую.

Добавлено через 8 минут 7 секунд
Uncaught ReferenceError: WScript is not defined

Ошибка основного кода в объявлении скрипта по ходу.
Пойду талмуды читать.
Блин.
Блинский.
 
Поиск по сайту выделенного текста из контексного меню уже запустил,щас остальное буду пробовать.
Настройки посиковой ссылки у админа запросил.
 
glax24, может еще тут посоветуешь:
Код:
window.open('http://safezone.cc/forum/yasearch.php?searchid=1961725&text=&web=0'+info.selectionText);
обрабатывается как
Код:
window.open('http://safezone.cc/forum/yasearch.php?searchid=1961725&text=&web=0текст поиска по форуму'+info.selectionText);
А надо вот так:
Код:
window.open('http://safezone.cc/forum/yasearch.php?searchid=1961725&text=текст поиска по форуму&web=0'+info.selectionText);
Текст поиска попадает в значении при выделении мышью и нажатии правой кнопки.
понятно что тут настройка форума такая,но может можно через код дописать обработку?
у меня тяма на bat сценарий с возвратом в скрипт js но чутье подсказывает что это не самый лучший вариант.

Добавлено через 3 минуты 30 секунд
А все,придумал==дописал суммирование в код.
Щас яндекс поиск работает по форуму.
пробую обычный поиск.
 
Koza Nozdri, сделал так в блокноте *.js, cmd запускается
Код:
getClickHandler();
function getClickHandler() {
var WSHShell = WScript.CreateObject("WScript.Shell");
WSHShell.Run("%COMSPEC%");
}
Агась,в блокноте запускается.
А в браузере нет.

Вот мой код:
Код:
function search (info, tab) {
window.open('http://safezone.cc/forum/yasearch.php?searchid=1961725&text='+info.selectionText+'&web=0');
};

chrome. contextMenus .create({
'title': 'Искать в SafeZone.cc',
'contexts':['selection'],
'onclick': search
});

function getClickHandler(info, tab) { 
var WSHShell = WScript.CreateObject("WScript.Shell");
WSHShell.Run("%COMSPEC%");
}


chrome. contextMenus .create({
'title': 'Запустить командную строку',
'contexts':['all'],
'onclick': getClickHandler
});

Поиск по форуму работает отлично.
 

Вложения

  • Безымянный.jpg
    Безымянный.jpg
    74.5 KB · Просмотры: 109
Последнее редактирование:
А ничего не пишет.
Ошибка
var WSHShell = WScript.CreateObject("WScript.Shell");
Точнее не ошибка,а указывает что тормозится все на этой строке.
браузер не понимает что от него хочет этот скрипт,и кстати пробовал через set-тогда вообще код не воспринимается.
максимум чего получается=браузер пытется скачать консоль...

Добавлено через 24 минуты 11 секунд
Ммм...по ходу не те объекты задаю...щас по иному попробую.

Добавлено через 46 минут 37 секунд
Придумал-надо указать передачу скрипта через адресную строку,но тут надо подумать как его запускать...

Добавлено через 14 минут 36 секунд
Угу.
Запуск командной строки будет работать только если все будет в кодировке аши,а плагины работают в юникоде.
Надо значит передать запуск отдельного скрипта через функцию js.
 
Последнее редактирование:
Koza Nozdri, может есть смысл связаться с Creator-ом: http://forum.ru-board.com/topic.cgi?forum=62&topic=9040&start=840#10

Как я понял судя с его исходника весь процесс интеграции заключается в этом:

Код:
Reg Add "HKCU\Software\Microsoft\Internet Explorer\MenuExt\Download and Extract" /ve /d "%HtmFile%" /f
Reg Add "HKCU\Software\Microsoft\Internet Explorer\MenuExt\Download and Extract" /v "Contexts" /t "REG_DWORD" /d 48 /f

где файл HtmFile.htm содержит такой VBS-код:
Код:
<SCRIPT language="VBScript">
On Error Resume Next
Set D2Ex = CreateObject("WScript.Shell")
Link = external.menuArguments.event.srcElement
D2Ex.Run "\.bat " & Replace(Link, "&", "%26"), 0, False
</SCRIPT>

Естественно, надстройка для IE Only. Может, нечто похожее возможно и для других браузеров.
 
Попытаюсь,спасибо.
Дело в том что ослик в этом плане податливее-у него даже меню через реестр правится,запустить софтину реальнее.
 
Последнее редактирование:
В общем если кому кроме меня интересно-вот плагин,с открытым исходным кодом,то есть каждый кто желает может дописать туда что захочет в качестве дополнительного функционала.

инструкция по установке:

  • скачиваем архив
  • распаковываем
  • открываем меню настроек браузера
    настройки=инструменты=расширения
    Безымянный.jpg
  • загружаем папку исходника,предварительно поставив галочку "режим разработчика".
    2.jpg
    22.jpg
  • готово
    3.jpg

По желанию можно дорабатывать и изменять по потребности.
 
Последнее редактирование:
glax24, локальные файлы с браузера я так и не смог запускать-маловато знаний.
Командную строку в браузерах на базе хрома пока что оставил до времен ,когда буду более подкован или свободен по времени.
А так =прекрасная возможность иметь бумарклеты например в контексном меню,поиск,оповещения о темах и так далее,в общем кому что хочется(скорее всего кроме меня никому и ничего:))))
Плагин не упакован,код открыт.
 
Назад
Сверху Снизу