private static LightWeightHTMLDocument FromIHTMLDocument2(IHTMLDocument2 htmlDocument, string url, string name, bool escapePaths, bool escapeEmptyString)
        {
            string escapedHtml = HTMLDocumentHelper.HTMLDocToString(htmlDocument);

            if (escapedHtml == null)
            {
                return(null);
            }

            if (escapePaths)
            {
                escapedHtml = LightWeightHTMLUrlToAbsolute.ConvertToAbsolute(escapedHtml, url, true, escapeEmptyString);
            }

            LightWeightHTMLDocument finalDocument = new LightWeightHTMLDocument(escapedHtml, url, name);

            // Set the Frames
            finalDocument.SetFrames(GetLightWeightDocumentForFrames(htmlDocument));

            // Set the styles
            finalDocument.SetStyleReferences(HTMLDocumentHelper.GetStyleReferencesForDocument(htmlDocument, url));

            // Set the DocType
            HTMLDocumentHelper.SpecialHeaders specialHeaders = HTMLDocumentHelper.GetSpecialHeaders(htmlDocument);
            finalDocument._docType   = specialHeaders.DocType;
            finalDocument._savedFrom = specialHeaders.SavedFrom;

            finalDocument.Parse();
            return(finalDocument);
        }
        public static LightWeightHTMLDocument FromString(string html, string baseUrl, string name, bool escapePaths)
        {
            string escapedHtml = html;

            if (escapePaths)
            {
                escapedHtml = LightWeightHTMLUrlToAbsolute.ConvertToAbsolute(html, baseUrl);
            }

            LightWeightHTMLDocument escapedDocument = new LightWeightHTMLDocument(escapedHtml, baseUrl, name);

            HTMLDocumentHelper.SpecialHeaders specialHeaders = HTMLDocumentHelper.GetSpecialHeaders(escapedHtml, baseUrl);
            escapedDocument._docType   = specialHeaders.DocType;
            escapedDocument._savedFrom = specialHeaders.SavedFrom;
            escapedDocument.Parse();
            return(escapedDocument);
        }
Beispiel #3
0
        protected virtual string InsertSpecialHeaders(string html)
        {
            // For local file urls, preserve the 'saved from' so that the page or snippet stays in the correct sandbox
            // For web based captures, ignore the existing savedFrom and use the current url as the saved from
            HTMLDocumentHelper.SpecialHeaders specialHeaders = HTMLDocumentHelper.GetSpecialHeaders(html, Url);
            if (specialHeaders.SavedFrom == null && _metaData != null && _metaData.SavedFrom != null)
            {
                html = html.Insert(0, _metaData.SavedFrom + "\r\n");
            }
            else if (specialHeaders.SavedFrom == null && Url != null && Url != string.Empty && !UrlHelper.IsFileUrl(Url))
            {
                html = html.Insert(0, UrlHelper.GetSavedFromString(Url) + "\r\n");
            }

            // Insure any doctype declaration is there
            if (_metaData != null && _metaData.DocType != null)
            {
                html = html.Insert(0, _metaData.DocType);
            }

            return(html);
        }