2015-06-10 3 views
0

У меня есть документ HTML с iFrame, который я загружаю в окне веб-браузера. Моя цель - загрузить документ iFrame, захватить содержимое документа и выполнить поиск определенной строки.Прочитайте содержимое iFrame в окне браузера WPF C#

Я пока не могу это сделать, любые предложения?

HTML КОД

<html> 
 
    <body> 
 
    <iframe id="monitor" src="http://monitor.baseline.com"></iframe> 
 
    </body> 
 
</html>

ответ

1

Вы можете добавить функцию JavaScript в OnLoad случае плавающем фрейме:

document.getElementById('monitor').onload = function() { }

Затем следуйте за these solutions, чтобы проанализировать ваш документ. Но имейте в виду ограничения межсайтового скриптинга. Если src вашего iFrame - совершенно другой домен, он, вероятно, не сработает.

+0

я хочу прочитать содержимое после загрузки IFrame. попробовав некоторые вроде ниже, но, похоже, не работает. var Frame = document.getElementById ('monitor'); alert (Frame.innterHTML); предупреждение (Frame.outerHTML); window.external.iFrameCheck (Frame.outerHTML); –

+0

Я думаю, вы не можете использовать innerHTML для iFrame, так как это не внутренний html, а содержимое src. Проверьте ссылку, которую я опубликовал, есть несколько способов доступа к содержимому iFrame. – LInsoDeTeh

0

я получил его, выполнив ниже

var javascript = @" 

         var Frame = document.getElementById('monitor'); 
         window.external.iFrameCheck(Frame.contentWindow.document); 
         "; 

      var doc = (IHTMLDocument2)webBrowser1.Document; 

      //Once we have the document, execute our JavaScript in it 
      doc.parentWindow.execScript(javascript); 

этого будет затем вызвать ниже C# код

[PermissionSet(SecurityAction.Demand, Name = "FullTrust")] 
     [ComVisible(true)] 
     public class ComVisibleObjectForScripting 
     { 
      public void iFrameCheck(HTMLDocument FrameDoc) 
      { 
       //Do what you want here with your FrameDoc 
       // the innerHTML will give you the content of the iframe 
      } 
     }