Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    6

    [C#] webBrowser, frame inaccessibile

    Ciao a tutti, avrei un problema relativo all'accesso ad un frame in un controllo webBrowser, mi spiego meglio, carico la prima pagina di un sito dove c'è login e password, cosi composta

    <html>
    ..<head>
    ..</head>
    ..<frameset framespacing="0" border="0" frameborder="no" rows="*,0,0">
    ....<frame scrolling="auto" noresize="" frameborder="0" src="home.php" name="mainframe">
    ......<html>
    ........<head>
    ........</head>
    ........<body>
    ........</body>
    ......</html>
    ....</frame>
    ..</frameset>
    </html>

    intercettando l'evento DocumentCompleted riesco ad accedere ai tag del body, e fin qui tutto ok.
    Dopo il login mi arriva una seconda pagina che, in effetti, cambia solo nell'interno del frame ed è cosi composta

    <html>
    ..<head>
    ..</head>
    ..<frameset framespacing="0" border="0" frameborder="no" rows="*,0,0">
    ....<frame scrolling="auto" noresize="" frameborder="0" src="home.php" name="mainframe">
    ......<html>
    ........<head>
    ........</head>
    ........<body onunload="" style="overflow: hidden;">
    ........</body>
    ......</html>
    ....</frame>
    ..</frameset>
    </html>

    sempre intercettando l'evento DocumentCompleted accedo al Dom della pagina, ma questa volta non riesco ad accedere ai Tag all'interno del Frame, sembra che ne sia bloccato l'accesso, non mi da neanche il relativo webBrowser1.Document.Window.Frames[0].Document, come se non esistesse, sto impazzendo, qualcuno ha un'idea???

    PS

    con JavaScript accedo regolarmente ad ogni tag delle pagine.

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    6
    ok risolto

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    18
    ciao,
    scusami.... ho un problema simile con degli iframe....

    spieghi anche a me come risolvere?

    grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    6
    ciao microz, il mio problema l'ho risolto semplicemente perchè dopo la pagina principale mi caricava anche delle pagine non visibili, e quando andavo a leggere il document non ero nella pagina buona.
    ho risolto che ad ogni DocumentCompleted che intercetto vado a leggermi l'url relativo e quando è quello buono salvo il Document in una variabile "globale" del tipo htmlDocument.
    con gli iframe non ho avuto a che fare ancora, ma con htmlWindow.frames dovrebbe darti la collection dei frames e iframe, se non sbaglio.
    spero di esserti stato d'aiuto, ciao.

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    18
    ciao,

    grazie per la risposta....

    la collection di frame la stavo usando ma a volte sembra che non riesco a beccarla in maniera annidata...

    es.
    webBrowser1.Document.Window.Frames[0].Document.Window.Frames[0].Document

    in alcuni casi webBrowser1.Document.Window.Frames.Count mi da 1 ma webBrowser1.Document.Window.Frames[0].Document mi va in eccezione


    è possibile individuare il documento corrente (inteso come HtmlDocument) che si ha sul DocumentCompleted?
    il sender è l'intero webbrowser e l'eventargs ha solamente l'url (utile cmq per capire dove sono)

    grazie

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    6
    ciao microz, il Document in caso di frame è quello che hai usato tu, io lo uso così

    string str = e.Url.ToString();
    if (str.Contains("home.php")) {Doc = webBrowser1.Document.Window.Frames [0].Document;}

    nel DocumentCompleted.

    Però in caso di più frames credo che bisogna andarlo a leggere nel frame giusto.
    Quando la smetteranno di programmare con sti frame, uffa.

    Io adesso ho un'altro problema, devo modificare lo style della pagina Html che carico, ma se aspetto il DocumentCompleted vedo prima la pagina originale, poi la stessa pagina con le mie modifiche, mi servirebbe intercettare un'evento che sia lanciato dopo il caricamento del Dom della pagina e prima che questa sia visualizzata effettivamente a video in modo da poterla modificare, conosci qualche cosa tu, io non riesco a trovare niente, sto webBrowser non lo usano in molti.
    ciao

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2008
    Messaggi
    18
    ciao

    scusa se non ti ho risposto prima ma in questi giorni non ho avuto molto tempo....
    purtroppo è la prima volta che uso il webbrowser e non l'ho ancora utilizzato molto (oltretutto anche per mancanza di tempo sono rimasto al problema dell'unauthorizedaccessexception quando accedo al document)

    appena ho un attimo e mi ci rimetto su vedo se trovo anche qualcosa relativamente agli style

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.