我正在构建一个软件来处理网站上的订单。我正在使用 DOM 浏览网站,并且希望当我在“错误”页面上使用命令时我的应用程序不会挂起。
例如:
try
WebBrowser.OleObject.Document.GetElementByID('ContentPlaceHolder1_txtCommande').setAttribute('value', lblDate.Caption);
except
end;
我想要的只是如果未找到该字段,则忽略该错误,因为该错误并不重要。谢谢!
编辑:当我指的是 DOM 时写了 ADO
最佳答案
你自己说可能找不到该元素,那么你期望什么
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 库(您可以在其中找到 GetElementID 返回的正确类型)使用 msxml,那么,正如 @GerryColl 提到的,您可以使用 element: OLEVariant
并检查 NULL 而不是 nil 指针。
关于delphi - Delphi 7 使用 DOM 时发生访问冲突错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11026884/