diff --git a/Greenshot/Helpers/IECaptureHelper.cs b/Greenshot/Helpers/IECaptureHelper.cs index d840d5bd1..297fa40c4 100644 --- a/Greenshot/Helpers/IECaptureHelper.cs +++ b/Greenshot/Helpers/IECaptureHelper.cs @@ -338,9 +338,13 @@ namespace Greenshot.Helpers { capture.Elements.Clear(); CaptureElement documentCaptureElement = documentContainer.CreateCaptureElements(pageSize); foreach(DocumentContainer frameDocument in documentContainer.Frames) { - CaptureElement frameCaptureElement = frameDocument.CreateCaptureElements(Size.Empty); - if (frameCaptureElement != null) { - documentCaptureElement.Children.Add(frameCaptureElement); + try { + CaptureElement frameCaptureElement = frameDocument.CreateCaptureElements(Size.Empty); + if (frameCaptureElement != null) { + documentCaptureElement.Children.Add(frameCaptureElement); + } + } catch (Exception ex) { + LOG.Warn("An error occurred while creating the capture elements: ", ex); } } capture.AddElement(documentCaptureElement); diff --git a/Greenshot/Helpers/IEInterop/IEContainer.cs b/Greenshot/Helpers/IEInterop/IEContainer.cs index 0f9c06b86..a4fcd4f04 100644 --- a/Greenshot/Helpers/IEInterop/IEContainer.cs +++ b/Greenshot/Helpers/IEInterop/IEContainer.cs @@ -368,7 +368,12 @@ namespace Greenshot.Helpers.IEInterop { /// public CaptureElement CreateCaptureElements(Size documentSize) { LOG.DebugFormat("CreateCaptureElements for {0}", Name); - IHTMLElement baseElement = document3.documentElement as IHTMLElement; + IHTMLElement baseElement; + if (!isDTD) { + baseElement = document2.body; + } else { + baseElement = document3.documentElement; + } IHTMLElement2 baseElement2 = baseElement as IHTMLElement2; IHTMLRect htmlRect = baseElement2.getBoundingClientRect(); if (Size.Empty.Equals(documentSize)) {