mozers
Silver Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Zeroglif Так мне понравился опубликованный тобой скрипт (Тем более что в Maxthon, увы, ViewPage не работает) что решил его маленько переделать. Получилось имхо понятнее: Код: <script language="VBScript"> ' Скрипт встраивается в контекстное меню Internet Explorer ' и позволяет открывать выделенный на странице текст в заданном редакторе Dim WshShell, FSO, DOC, File Dim htmlEditor, tmpFile, htmlString ' Путь к вашему редактору. htmlEditor = "C:\Program Files\Aditor\aditor.exe" ' Извлекаем со страницы выделенный текст Set DOC = external.menuArguments.document htmlString = DOC.Selection.CreateRange().htmlText ' Если выделенного текста нет, берем всю страницу If htmlString = "" Then htmlString = DOC.All(0).outerHTML ' Определяем имя временного файла, куда запишем полученный текст Set WshShell = CreateObject("WScript.Shell") tmpFile = WshShell.ExpandEnvironmentStrings("%TEMP%" & "\temp.htm") ' Открываем временный файл и пишем в него наш текст Set FSO = CreateObject("Scripting.FileSystemObject") Set File = FSO.OpenTextFile(tmpFile, 2, True) File.WriteLine htmlString ' Открываем записанный нами временный файл в любимом редакторе ' (Не забудем про кавычки, обрамляющие длинные имена файлов) WshShell.Run """" & htmlEditor & " " & """" & tmpFile & """" </script> | или то же самое, но на JS (кому что больше нравится): Код: <script language=JavaScript> // Скрипт встраивается в контекстное меню Internet Explorer // и позволяет открывать выделенный на странице текст в заданном редакторе // Путь к вашему редактору. Задавать ТОЛЬКО в представленном виде! var htmlEditor = 'D:\\Program Files\\EditPlus 2\\editplus.exe'; // Извлекаем со страницы выделенный текст var doc = external.menuArguments.document; var sel=doc.selection.createRange().htmlText; // Если выделенного текста нет, берем всю страницу if (!sel) {sel=doc.all(0).innerHTML;}; // Определяем имя временного файла, куда запишем полученный текст var WSHShell = new ActiveXObject('WScript.Shell'); var tmpFile = WSHShell.ExpandEnvironmentStrings('%TEMP%' + '\\temp.htm'); // Открываем временный файл и пишем в него наш текст var FSO = new ActiveXObject('Scripting.FileSystemObject'); var File = FSO.CreateTextFile(tmpFile, 2, false); File.Write (sel); // Открываем записанный нами временный файл в любимом редакторе // (Не забудем про кавычки, обрамляющие длинные имена файлов) WSHShell.Run('"' + htmlEditor + '" "' + tmpFile + '"'); </script> | Для вставки в контекстное меню (вдруг кто не знает?) сделайте файлик "Регистрация.REG" следующего содержания: Код: REGEDIT4 [HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\View HTML] @="G:\\Program Files\\Maxthon\\Plugin\\ViewHTML\\ViewHTML.htm" "Contexts"=dword:0000003b | где "G:\\Program Files\\Maxthon\\Plugin\\ViewHTML\\ViewHTML.htm" - путь к файлу со скриптом и щелкните на нем Все работает, НО все мои попытки запустить данный скрипт как плагин Maxthon (как всунуть его в кнопочку надеюсь знают все) потерпели неудачу Не то что бы очень надо (через контекстное меню даже удобнее), но дело принципа. Выяснилось, что комментарии внутри скрипта-плагина не живут, да и инструкции он обрабатывает как то по китайски. В общем, если кто то сможет заставить работать этот скрипт как плагин - свистните - прото интересно с точки зрения технологии. |