我正在构建一个软件来处理网站上的订单。我正在使用DOM浏览网站,当我在“错误”页面上使用命令时,我希望我的应用程序不会挂起。
例如:
try
WebBrowser.OleObject.Document.GetElementByID('ContentPlaceHolder1_txtCommande').setAttribute('value', lblDate.Caption);
except
end;
我想要的只是在找不到该字段时忽略该错误,因为此错误并不重要。谢谢!
编辑:当我的意思是DOM
时写了ADO答案 0 :(得分:5)
你自己说可能找不到元素,所以你期望什么
WebBrowser.OleObject.Document.GetElementByID('ContentPlaceHolder1_txtCommande')
在这种情况下返回nil
以外的其他内容?然而,你“公然”使用附加的任何内容
.setAttribute('value', lblDate.Caption);
到它。
将您的代码更改为
var
element: IDomElement; // Whatever it should really be
begin
element := WebBrowser.OleObject.Document.GetElementByID('ContentPlaceHolder1_txtCommande');
if Assigned(element) then
element.setAttribute('value', lblDate.Caption);
修改
如果您正在使用变体而不是通过其类型库或其他一些xml库使用msxml,您可以在其中找到GetElementID返回的正确类型,那么,正如@GerryColl所提到的,您可以使用element: OLEVariant
和检查NULL而不是nil指针。