Просмотр полной версии : Oleobject, textarea
SultanOFF
15.11.2009, 19:44
Здравствуйте, хочу сделать чтобы по нажатию кнопки заполнялось содержимое 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;
но к сожалению ничего не заполняется :( В чем Моя ошибка? Помогите пожалуйста!
Вообще дело вот в чем:
Элементы могут храниться не в том виде в котором написаны.
В моём случае <textarea> имел имя TEXTAREA
По этому проверка ovElements.item(i).tagName = 'textarea' заваливалась из-за регистра символов. Как вариант преобразовывав ovElements.item(i).tagName в нижний регистр и уже сверяй.
А догадаться до этого можно было бы очень просто. Даже не знаю об этом.
Достаточно было бы в цикл поместить команду memo1.Lines.Add(ovElements.item(i).tagName);
и сразу бы всё стало видно.
SultanOFF
17.11.2009, 19:30
Слушай Я сделал вот так, в принципе работает :)
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; но совсем не работает? Думаете почему?
а никак. Оно имеет атрибут READ_ONLY потому как это сделано с целью безопасности. Даже черех javascript неполучится. Если можно было бы задавать самому эти данные то можно былобы у пользователя автоматом сливать файлы с компа без его ведома.
SultanOFF
17.11.2009, 20:39
блин точно...а незнаете как в Моем случае тогда поступить?
как поступить - хз потому что ты не описал что тебе нужно )
Если отправить файл на сервак, то ищи по форуму. исходникик были точно (сам выкладывал)
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot