Здравствуйте, d99, Вы писали:
d99>Здравствуйте, уважаемые!
d99>В скрипте в HTML определена переменная, например
d99>d99>var ttt=0
d99>
d99>Как из приложения, которое вызывает Sciter, установить значение этой переменной сразу после загрузки HTML?
d99>И как установить значение, если переменная должна быть массивом?
d99>Если можно, то на Plain C.
d99>Спасибо.
Ну дык вот же.
// evaluate script in context of current document loaded in the window
inline json::value eval(HWND hwnd, const wchar_t* script, unsigned length)
{
json::value retval;
BOOL r = SciterEval( hwnd, script, length, &retval );
assert(r);r;
return retval;
}
Где script это что-то типа "ttt=3.1415926;" ну или еще что-то.
Но на самом деле такие вещи делаются через custom view methods.
В скрипте пишем
var ttt = view.initialValueOfTTT();
Этот view.initialValueOfTTT() будет вызван именно в момент инициализации переменной.
А в коде (определнии класса) event_handler который устанавливается на view (HWND) пишем:
// functions accessible through view.funcname() from script:
BEGIN_FUNCTION_MAP
FUNCTION_0("initialValueOfTTT", method_initialValueOfTTT)
FUNCTION_V("debug", method_debug)
FUNCTION_1("shellExec", method_shellExec)
END_FUNCTION_MAP
Ну и сам метод который возвращает массив
json::value method_initialValueOfTTT()
{
json::value arr;
arr.set_item(0, json::value(12));
arr.set_item(1, json::value(13));
....
return arr; // returning the array
}