 |

15.11.2009, 19:44
|
|
Участник форума
Регистрация: 04.06.2009
Сообщений: 176
С нами:
8913664
Репутация:
0
|
|
Oleobject, textarea
Здравствуйте, хочу сделать чтобы по нажатию кнопки заполнялось содержимое textarea. делаю так:
Код:
procedure TForm1.btn2Click(Sender: TObject);
var
ovElements: OleVariant;
i: Integer;
begin
ovElements := Wb1.OleObject.Document.forms.item(0).elements;
for i := 0 to (ovElements.Length - 1) do
if (ovElements.item(i).tagName = 'textarea') then
ovElements.item(i).value:='Marsel';
end;
но к сожалению ничего не заполняется  В чем Моя ошибка? Помогите пожалуйста!
|
|
|

17.11.2009, 18:59
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами:
10097606
Репутация:
3349
|
|
Вообще дело вот в чем:
Элементы могут храниться не в том виде в котором написаны.
В моём случае <textarea> имел имя TEXTAREA
По этому проверка ovElements.item(i).tagName = 'textarea' заваливалась из-за регистра символов. Как вариант преобразовывав ovElements.item(i).tagName в нижний регистр и уже сверяй.
А догадаться до этого можно было бы очень просто. Даже не знаю об этом.
Достаточно было бы в цикл поместить команду memo1.Lines.Add(ovElements.item(i).tagName);
и сразу бы всё стало видно.
|
|
|

17.11.2009, 19:30
|
|
Участник форума
Регистрация: 04.06.2009
Сообщений: 176
С нами:
8913664
Репутация:
0
|
|
Слушай Я сделал вот так, в принципе работает
Код:
procedure TForm1.btn2Click(Sender: TObject);
var
doc : IHTMLDocument2;
col : IHTMLElementCollection;
el : IHTMLElement;
i : integer;
begin
doc := wb1.Document as IHTMLDocument2;
col := doc.all.tags('textarea') as IHTMLElementCollection;
for i := 0 to col.length-1 do
begin
el := col.item(i, 0) as IHTMLElement;
el.setAttribute('value', 'Marsel', 0);
end;
end;
но почему то к типу file не подходит, делаю вот так:
Код:
procedure TForm1.btn2Click(Sender: TObject);
var
doc : IHTMLDocument2;
col : IHTMLElementCollection;
el : IHTMLElement;
i : integer;
begin
doc := wb1.Document as IHTMLDocument2;
col := doc.all.tags('input') as IHTMLElementCollection;
for i := 0 to col.length-1 do
begin
el := col.item(i, 0) as IHTMLElement;
if el.getAttribute('type', 0) = 'file' then
el.setAttribute('value', 'Marsel', 0);
end;
end;
но совсем не работает? Думаете почему?
|
|
|

17.11.2009, 20:18
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами:
10097606
Репутация:
3349
|
|
а никак. Оно имеет атрибут READ_ONLY потому как это сделано с целью безопасности. Даже черех javascript неполучится. Если можно было бы задавать самому эти данные то можно былобы у пользователя автоматом сливать файлы с компа без его ведома.
Последний раз редактировалось slesh; 17.11.2009 в 20:21..
|
|
|

17.11.2009, 20:39
|
|
Участник форума
Регистрация: 04.06.2009
Сообщений: 176
С нами:
8913664
Репутация:
0
|
|
блин точно...а незнаете как в Моем случае тогда поступить?
|
|
|

17.11.2009, 20:58
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
С нами:
10097606
Репутация:
3349
|
|
как поступить - хз потому что ты не описал что тебе нужно )
Если отправить файл на сервак, то ищи по форуму. исходникик были точно (сам выкладывал)
|
|
|
|
 |
Предыдущая тема
Следующая тема
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|