1 (изменено: Poltergeyst, 2019-04-08 16:04:08)

Тема: JavaScript & IE: тестирование скрипт-кода на Web страницах форумов

Без гарантий. Используете на свой страх и риск.

Скрипт предназначен для тестирования скрипт-кода расположенного на Web страницах форумов в браузере Internet Explorer, путем выполнения динамически генерируемого временного скрипт-файла. Работает как с выделенной текстовой областью так и со специфической областью кода подразумевающей тэг 'code'(для форума forum.script-cofing.info). Разместите файл testscr.htm в произвольном каталоге. Далее выполните REG файл следующего содержимого:

REGEDIT4

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\MenuExt\Тестировать код]
@="C:\\[путь...]\\testscr.htm"
"Contexts"=dword:0000003f
"Flags"=dword:00000001

Откройте документ содержащий скрипт-код в Internet Explorer. Выделите тектовую область кода или наведите мышь на специфическую область скрипт-кода подразумевающую тэг 'code'(для форума forum.script-cofing.info). Правой кнопкой мыши вызовите контекстное меню и выберите пункт "Тестировать код". В появившемся окне диалога выберите расширение временного файла скрипта который планируется запустить.

Кнопка "Тест" запустит скрипт-код на исполнение.
Кнопка "Блокнот" откроет скрипт-код в 'Блокноте'.
Кнопка "Выход" закроет окно диалога, при этом временный файл скрипта будет удален.

Lang JavaScript
OC WinME/XP
Браузер Internet Explorer
WSH 5.6

testscr.htm

<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1251">
<HTML>
<!--
----------------------------------------------------------------------------
Скрипт предназначен для тестирования скрипт-кода расположенного
на Web страницах форумов. Откройте документ содержащий скрипт-код в Internet Explorer. 
Выделите тектовую область кода или наведите мышь на специфическую область скрипт-кода 
подразумевающую тэг 'code'(для форума forum.script-cofing.info). Правой кнопкой мыши вызовите 
контекстное меню и выберите пункт "Тестировать код". В появившемся окне диалога выберите 
расширение временного файла скрипта который планируется запустить.

    Кнопка "Тест" запустит скрипт-код на исполнение.
    Кнопка "Блокнот" откроет скрипт-код в 'Блокноте'.
    Кнопка "Выход" закроет окно диалога,при этом временный файл
        скрипта будет удален.
------------------------------------------------------------------------------
Lang     JavaScript
OC     WinME/XP
Браузер Internet Explorer
WSH     5.6
------------------------------------------------------------------------------
-->

<HEAD>
<TITLE>Script-Coding.com script test</TITLE>
<STYLE type=text/css>

BODY    {    background-color: #c0c0c0; 
        border: 3px; 
        border-style: outset; 
        margin: 2px;}

TD    {    font-family: Verdana; 
        font-size: 12px; 
        font-weight: 700;}
INPUT    {    border: 1px solid red; 
        width: 70}

</STYLE>
</HEAD>
<BODY>
<TABLE>
<TR><TD COLSPAN=3>Выберите расширение файла скрипта:</TD></TR>
<TR><TD COLSPAN=3><SELECT ID='extlist' size=5></TD></TR>
<TR>
<TD align='center'><INPUT TYPE='BUTTON' VALUE='Тест'     ID='testBtn'></TD>
<TD align='center'><INPUT TYPE='BUTTON' VALUE='Блокнот' ID='noteBtn'></TD>
<TD align='center'><INPUT TYPE='BUTTON' VALUE='Выход'     ID='exitBtn' onclick='window.close();'></TD>
</TR>
</TABLE>

<SCRIPT>

var ext        //Расширение временного файла
var code    //Скрипт код от Web страницы
var oldCol    //Старый цвет области 'code'


//[Создание объектов]
var scrRun    =new ActiveXObject('Scripting.FileSystemObject')
var wShell    =new ActiveXObject('Shell.Application')

//[Генерация случайного имени временного файла скрипта]
var TemporaryFolder=2
var tmp            =scrRun.GetSpecialFolder(TemporaryFolder).Path
var randName        =tmp+'\\'+'st'+Math.floor(Math.random()*1000)+'.'

//[Определение объектов документа]
var extWin    =external.dialogArguments
var aElement    =extWin.document.activeElement
var slct    =extWin.document.selection

//[Проверка элемента или области выделения]
code=extWin.document.selection.createRange().text    //Выделенный текст
    
if (!code.length)
{
    if (aElement.tagName=='DIV' | aElement.className=='scrollbox')
    {
        code        =aElement.innerText        
        oldCol        =aElement.style.backgroundColor
        aElement.style.backgroundColor='#c0c0c0'
    }
    else    
    {
        alert('Данный элемент не содержит скрипт-код либо ничего не выделено.')
        window.close()            
    }
}
    
//[Установка параметров оформления]
    dialogHeight        =320/16
    dialogWidth        =304/16
    dialogLeft        =10
    dialogTop        =10
    extlist.style.width    =270
    extlist.style.height    =200

//[Формирование списка расширений]
with (extlist)
{
    add(window.Option.create('hta'    ,0),0)
    add(window.Option.create('wsf'    ,1),1)
    add(window.Option.create('vbs'    ,2),2)
    add(window.Option.create('js'    ,3),3)
    add(window.Option.create('mf'    ,4),4)
    add(window.Option.create('py'    ,5),5)
    add(window.Option.create('pyw'    ,5),5)
    add(window.Option.create('ahk'    ,6),6)
    value=0
}

//[Создание файла скрипта]
function createFile()
{
    ext=extlist.options.item(extlist.selectedIndex).text

    if (!scrRun.FileExists(randName+ext))
    {
        var strm=scrRun.OpenTextFile(randName+ext,2,true)
        strm.Write(code)
        strm.Close()
    }
}

//[Тестовый запуск]
function testBtn.onclick()
{
iAnsw=confirm(    'Предупреждение:\n'+
        'Внимательно ознакомьтесь с содержимым     \n'+
        'скрипт кода прежде чем тестировать его.\n'+
        'Администрация ресурса script-coding.com\n'+
        'и разработчик этого скрипта не несут     \n'+
        'никакой ответственности за возможные     \n'+
        'сбои и неполадки вызванные использованием\n'+
        'этого скрипта и тестированием выбранного\n'+ 
        'вами скрипт-кода.            \n'+
        'Используете на свой страх и риск.    \n'+
        'Уверены что хотите продолжить?')

    if (!iAnsw){return}
    //Проверить существует ли временный файл с заданным
    //расширением,в любом случае задать имя с учетом
    //текущего расширения в списке
    createFile()
    wShell.ShellExecute(randName+ext,'','open')
}

//[Открытие скрипт файла в Блокноте]
function noteBtn.onclick()
{
    createFile()
    wShell.ShellExecute('notepad.exe',randName+ext,'open')
}

//[Удаление файла скрипта при закрытии модального окна]
function window.onunload()
{
    aElement.style.backgroundColor=oldCol
    try
    {
    scrRun.DeleteFile(randName+'*',true)
    }
    catch(err){}
}
//pltrgst
</SCRIPT>
</BODY>
</HTML>

2 (изменено: Poltergeyst, 2008-12-13 22:14:51)

Re: JavaScript & IE: тестирование скрипт-кода на Web страницах форумов

Тот же самый скрипт, но в пакете с инсталляционными inf файлами, позволяющими провести автоматическую установку и удаление.

Post's attachments

testscr.zip 7.77 kb, 1375 downloads since 2008-12-13 

You don't have the permssions to download the attachments of this post.