![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте.
Возникла такая проблемка, надеюсь, поможете решить ибо моих сил уже нет на нее. Собственно, не буду описывать огород, а лишь вкратце, чтобы была понятна суть проблемы. Есть компонент TWebBrowser. Загружаю в него страничку (не важно какую, пусть будет, например, microsoft.com), далее добавляю после BODY элемент: Код HTML:
Все ок. И у элемента указываю js функцию myfuncs(), естественно, на самой странице такой ф-ии нет. И вот такой вопрос, как эту функцию добавить на страницу тоже, и чтобы она обрабатывалась onchange селектом? Возможно ли вообще так, или есть альтернативы решения данной задачи? |
|
#2
|
||||
|
||||
|
Код HTML:
|
|
#3
|
|||
|
|||
|
Нет, конечно, так пробовал, но...
Вот, привожу код: Код:
procedure TForm1.WebBrowserDocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant);
var DocA: IHTMLElementCollection; Element: IHTMLElement;
CurWebrowser: IWebBrowser; TopWebBrowser: IWebBrowser;
tselect:String; i:integer;
begin
CurWebrowser:= pDisp as IWebBrowser;
TopWebBrowser:= (Sender as TWebBrowser).DefaultInterface;
if CurWebrowser = TopWebBrowser then
begin
tselect:= '<script>function myfuncs(){alert("Bla bla bla");}</script><select onchange=javascript:myfuncs()><option>1</option><option>2</option></select>';
DocA:=(WebBrowser.Document as IHTMLDocument2).all;
for i:=0 to DocA.length - 1 do
begin
Element:=DocA.item(i,0) as IHTMLElement;
if (Element.tagName = 'BODY') then
begin
Element.insertAdjacentHTML('afterBegin', tselect);
end;
end;
end;
end;Ну, и, ругается: Ошибка: Значением свойства "myfuncs" или является NULL, или оно не определено, или не является объектом Function |
|
#4
|
|||
|
|||
|
Решение нашел. Если кому ещё пригодится - скажите, напишу, либо в лс..
|
|
#5
|
||||
|
||||
|
Цитата:
![]() |