Что нового

[Автоматизация] Выполнение JavaScript'a для определённой страницы, на которой нету JS'a

Trans

Знающий
Сообщения
257
Репутация
6
в принципе в название темы, все сказано...
Вот скрипт JS'a который должен выполняться на странице...

Код:
// ==UserScript==
// @name           My_Script
// @namespace      http://site.ru
// @include        http://site.ru
// ==/UserScript==
var u=Math.floor(Math.random()*4+1);
var inputs = document.getElementsByTagName('input');
for (i=0; i<inputs.length; i++) 
	{  if (inputs[i].getAttribute("name") == "udar") 
	{    if (inputs[i].getAttribute("value") == u)     
	{inputs[i].setAttribute('checked', 'checked');}  }}
document.forms[0].submit();
 
Автор
T

Trans

Знающий
Сообщения
257
Репутация
6
Garrett [?]
что-то попытался не получается :( мб я что-то не так делаю...
Код:
Func JS_Attack()
Local $JS
$JS = "// @namespace      http://site.ru"
$JS = "// @include        http://site.ru*"
$JS = "// ==/UserScript=="
$JS = "var u=Math.floor(Math.random()*4+1);"
$JS = "var inputs = document.getElementsByTagName('input');"
$JS = "for (i=0; i<inputs.length; i++)"
$JS = '	{  if (inputs[i].getAttribute("name") == "udar")'
$JS = '{    if (inputs[i].getAttribute("value") == u)'
$JS = "{inputs[i].setAttribute('checked', 'checked');}  }}"
$JS = 'document.forms[0].submit();'
_IEHeadInsertEventScript ($oIE, "document", "onbeforeunload",$JS)
EndFunc
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1 575
Репутация
335
Trans [?]
мб я что-то не так делаю...
Кавычку не закрыли. И Вы все время переприсваиваете значение для $JS, а нужно добавлять. для этого существует оператор &=.
И не забывайте про перенос строк.
Код:
Func JS_Attack()
Local $JS = ""
$JS &= "// @namespace      http://site.ru" & @CRLF
$JS &= "// @include        http://site.ru*" & @CRLF
$JS &= "// ==/UserScript==" & @CRLF
$JS &= "var u=Math.floor(Math.random()*4+1);" & @CRLF
$JS &= "var inputs = document.getElementsByTagName('input');" & @CRLF
$JS &= "for (i=0; i<inputs.length; i++)" & @CRLF
$JS &= ' {  if (inputs[i].getAttribute("name") == "udar")' & @CRLF
$JS &= '{    if (inputs[i].getAttribute("value") == u)' & @CRLF
$JS &= "{inputs[i].setAttribute('checked', 'checked');}  }}" & @CRLF
$JS &= 'document.forms[0].submit();'
_IEHeadInsertEventScript ($oIE, "document", "onbeforeunload",$JS)
EndFunc
 

Medic84

Омега
Команда форума
Администратор
Сообщения
1 575
Репутация
335
А если попробовать заменить
Код:
_IEHeadInsertEventScript ($oIE, "document", "onbeforeunload",$JS)

на
$oIE.document.parentWindow.execScript($JS)
 
Автор
T

Trans

Знающий
Сообщения
257
Репутация
6
Medic84 [?]
а вот так вот работает, огромное спасибо... вот только хотелось узнать, почему не подошел
Код:
_IEHeadInsertEventScript ($oIE, "document", "onbeforeunload",$JS)
 

MrZLO

Suum cuique
Сообщения
15
Репутация
4
Блин! учи матчасть onbeforeonload = перед выгрузкой parentWindow
 
Верх