delphi - Delphi 7 使用 DOM 时发生访问冲突错误

标签 delphi dom

我正在构建一个软件来处理网站上的订单。我正在使用 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/

相关文章:

delphi - Delphi 2006 - XE 中是否有新的并行编程功能?

delphi - 如何安装 OmniXml for Delphi Xe2/OExport XLSX/ODS native Delphi/Lazarus 导入/导出库

delphi - (如何)我可以使用带有标准文件打开对话框的 FutureWindows 吗?

javascript - 如何将 HTML 附加到 div,同时仍然允许监听器工作?

delphi - 无效的 ImageList 索引错误 [Delphi]

delphi - 如何实现从outlook邮件或thunderbird拖放到delphi表单?

PHP-Dom 处理 : Code-review of a little Parser-programme

Java HTMLDocument(insertAfterEnd、insertAfterStart、insertBeforeEnd、insertBeforeStart)不工作?

javascript - 使用什么方法访问数组中的多个对象?

iPhone 上的 JavaScript 动画滞后