Тема: 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>