Получить переменную из javascript

Все вопросы касающиеся использования
программы можно задать здесь
Ответить
Аватара пользователя
huligun
Сообщения: 92
Зарегистрирован: 01 окт 2010, 19:13

Получить переменную из javascript

Сообщение huligun » 11 дек 2021, 17:11

Подскажите,
как после запуска run_java_script
получить переменную после выполнения javascript ?

пробую получить в хумане массив из javascript цикла

for(y = grig_size; y < height;y = y + grig_size) {
for(x = grig_size; x < width;x = x + grig_size) {
var element = document.elementFromPoint(x, y);
if(window.getComputedStyle(element).cursor == "pointer") {
res = x + "x" + y;
i++;
}
}
}
res;

в хумане вызываю
$res = $browser->run_java_script("", './js/js.txt');
print_r($res);
System.Collections.Generic.List`1[System.Object]

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 3047
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Получить переменную из javascript

Сообщение bigfozzy » 12 дек 2021, 18:36

$js="var res=\"0x0\";var grig_size=1;var height=1;var width=1;
for(y = grig_size; y < height;y = y + grig_size) 
{
	for(x = grig_size; x < width;x = x + grig_size) 
	{
		var element = document.elementFromPoint(x, y);
		if(window.getComputedStyle(element).cursor == \"pointer\") 
		{
			res = x +\"x\" + y;
			i++;
		}
	}
}
res;";
echo $browser->run_java_script($js);

Аватара пользователя
huligun
Сообщения: 92
Зарегистрирован: 01 окт 2010, 19:13

Re: Получить переменную из javascript

Сообщение huligun » 12 дек 2021, 19:54

Походу форум побил мой код, аоэтому обрамил тэгом. Я его запускаю из файла т.к. не хочу засорять код хумана, через
$res = $browser->run_java_script("", './js/js.txt');
И если я собираю в переменную типа str + str + x + \"x\" + y;
то я получаю все в хумане, а вот когда в массив то выскакивает ошибка System.Collections.Generic.List`1[System.Object]
Так вот как получить массив ?

Код: Выделить всё

var grig_size = 50;
var width = window.innerWidth;
var height = window.innerHeight;
var res = [];
var x,y;
var i = 0;

for(y = grig_size; y < height;y = y + grig_size) {
    for(x = grig_size; x < width;x = x + grig_size) {
        var element = document.elementFromPoint(x, y);
        if(window.getComputedStyle(element).cursor == "pointer") {
            res[i] = x + "x" + y;
            i++;
        }
    }    
}
res;
Да и еще если ставлю grig_size скажем 10, т.е. цикл получается большим, то ничего не приходит. Такое ощущение что памяти не хватает хотя сервак 32гб

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 3047
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Получить переменную из javascript

Сообщение bigfozzy » 14 дек 2021, 18:41

насчет массива - сделайте просто JSON.stringify(res) вместо res и потом разберите полученный JSON

$js="var grig_size = 50;
var width = window.innerWidth;
var height = window.innerHeight;
var res = [];
var x,y;
var i = 0;

for(y = grig_size; y < height;y = y + grig_size) {
    for(x = grig_size; x < width;x = x + grig_size) {
        var element = document.elementFromPoint(x, y);
        if(window.getComputedStyle(element).cursor == 'pointer') {
            res = x + 'x' + y;
            i++;
        }
    }    
}
JSON.stringify(res);";
$arr=json_decode($browser->run_java_script($js));
print_r($arr);

Аватара пользователя
bigfozzy
Site Admin
Сообщения: 3047
Зарегистрирован: 28 июл 2008, 17:24
Контактная информация:

Re: Получить переменную из javascript

Сообщение bigfozzy » 14 дек 2021, 18:45

Да и еще если ставлю grig_size скажем 10, т.е. цикл получается большим, то ничего не приходит. Такое ощущение что памяти не хватает хотя сервак 32гб

а какая модель браузера у вас ?

Ответить