![]() |
![]() |
![]() |
|
v8: Как выполнить функцию JavaScript в ПолеHTMLДокумента и получить ее результат | ☑ | ||
---|---|---|---|---|
0
itPiligrim
07.08.06
✎
16:23
|
Есть: ПолеHTMLДокумента в которое загружается HTML страница с некоторой JavaScript функцией.
Задача: после загрузки страницы выполнить эту функцию. При загрузке HTML страницы эта функция не выполняется, требуется в произвольный момент вызывать ее и получить ее результат. Вроде все просто, но как сделать? Я пока копаю в таком направлении: По событию ДокументСформирован: Скрипт = new COMОбъект("MSScriptControl.ScriptControl"); Скрипт.language = "JavaScript"; Скрипт.AddObject("test", ПолеHTML.Документ.scripts.item("test")); (тег <script> на странице имеет id=test и я пытаюсь его запихнуть в ScriptControl и выполнить функцию какую-нибудь, но ничего не получается.) Попытка использовать eval или ExecuteStatement ни к чему приводит, пишет, что не поддерживается такой метод или св-во. Можно ли вообще это сделать? |
|||
1
vde69
07.08.06
✎
16:28
|
можно на web форме сделать кнопку,
|
|||
2
itPiligrim
07.08.06
✎
17:00
|
(1)
Кнопку то можно сделать, можно даже повесить на нее событие скажем onClick="test()" но как сделать так, чтобы результат выполнения функции test() попал в 8-ку. Вариант с передачей через строку поиска типа http://index.html?param=123 не предлагать, результаты функции могут быть довольно большими. |
|||
3
vde69
07.08.06
✎
17:05
|
может это поможет:
<%@ Language=javascript %> <% // соединение с базой (обьекты храняться в переменных сесии) a = 1; try { if (Session("entConn") == null) { Session("entConn") = new ActiveXObject("v8.comconnector"); } entConn = Session("entConn"); if (Session("conn") == null) { Session("conn") = entConn.connect("file=d:/1c_80/HelpDesk;usr=com;pwd=123"); Session("conn").ПроверитьIP(" " + Request.ServerVariables("REMOTE_ADDR")); } conn = Session("conn"); } catch (exc) { a=0; Session("entConn") = null; Session("Conn") = null; entConn = null; conn = null; Response.Write("<p align=\"center\"><font size=\"4\">Ошибка сервера при подключении к 1с</font></p>"); } if (a == 1) { try { // обработка выбора задачи, процесса, статьи, вопроса к БЗ recTxt = Request.QueryString("idb"); if (recTxt.Count != 0) conn.УстановитьТекущуюСтатью(recTxt(1)); recTxt = Request.QueryString("idp"); if (recTxt.Count != 0) conn.УстановитьТекущийПроцесс(recTxt(1)); recTxt = Request.QueryString("idz"); if (recTxt.Count != 0) conn.УстановитьТекущуюЗадачу(recTxt(1)); recTxt = Request.QueryString("q"); if (recTxt.Count != 0) conn.УстановитьТекущийВопрос(recTxt(1)); // обработка формы новой заявки, и новых действий для задачи num=0; recTxt = Request.Form("kol"); if (recTxt.Count != 0) num=recTxt(1); if (num > 0) { fl=""; recTxt = Request.Form("nt"); if (recTxt.Count != 0) fl=recTxt(1); if (fl=="proc") { tc=conn.БизнесПроцессы.ВедениеЗаявки.СоздатьБизнесПроцесс(); t="Без темы"; recTxt = Request.Form("temа"); if (recTxt.Count != 0) t=recTxt(1); tc.Тема=t; } if (fl=="zad") { tc=conn.ПараметрыСеанса.ТекущаяЗадача.ПолучитьОбъект(); t=-1; recTxt = Request.Form("tolls"); if (recTxt.Count != 0) t=recTxt(1); tc.БудущиеДействия.Очистить(); } for (i = 1; i < num; i++) { n=-1; recTxt = Request.Form("v1_" + i); if (recTxt.Count != 0) n=recTxt(1); k=''; recTxt = Request.Form("v2_" + i); if (recTxt.Count != 0) k=recTxt(1); if (fl=="proc") conn.ДобавитьСтрокуБП(tc, n, k); if (fl=="zad") conn.ДобавитьСтрокуЗадачи(tc, n, k); } if (fl=="proc") conn.ЗаписатьБП(tc); if (fl=="zad") conn.ЗаписатьЗадачу(tc,t); } // обработка формы авторизации login=-1; recTxt = Request.Form("login"); if (recTxt.Count != 0) login=recTxt(1); pass=""; recTxt = Request.Form("pass"); if (recTxt.Count != 0) pass=recTxt(1); if (login != -1) if (login != "") { if (pass != "") conn.Авторизация(login, pass); } else conn.РазАвторизация(); // обработка выбора страницы recTxt = Request.QueryString("p"); if (recTxt.Count == 0) page = "default"; else page = recTxt(1); Response.Write(conn.СобратьСтраницу(page)); } catch (exc) { Session("entConn") = null; Session("entConn") = null; entConn = null; conn = null; Response.Write("<p align=\"center\"><font size=\"4\">Ошибка сервера при выполнении процедур 1с</font></p>"); } } %> |
|||
4
Билли Г
07.08.06
✎
17:07
|
Сообщить(ЭлементыФормы.ПолеHTMLДокумента.Документ.parentWindow.eval("someJSfunction()"));
|
|||
5
itPiligrim
07.08.06
✎
17:09
|
(4)
Билли Г - супер! Спасибо, это то, что нужно! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |