Gambas France BETA


Pas de compte ? Incription

Page web énumérer les div

Ce sujet est résolu.

1
AuteurMessages
décapode#1 Posté le 20/11/2013 à 14:37:44
Re tout le monde.
je récupère un page web en tant que texte, mais comment la récupérer en tant que "html/objet" pour pouvoir énumérer les div par byid ou bynames
pour cliquer (entre autres choses) sur un bouton . Je sèche...
décapode#2 Posté le 20/11/2013 à 14:48:04
desolé je viens de trouver: HtmlDocument (gb.xml.html)
gambix#3 Posté le 22/11/2013 à 12:48:05
Faire simple !c'est ce qu'utilise ce site. Pour construire et interagir avec la structure de la page . Par ailleurs, ce composant a été initié pour ce site au départ...
Moins de texte dans une signature c'est agrandir son espace.
gambix#4 Posté le 22/11/2013 à 12:51:58
Faire simple !
Voici par exemple le code de la vue de cette page :

(Oui, Chaque page est décomposée en modèle Controleur/Data/Vue)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
PUBLIC SUB VoirSujet(sujet AS ForumSujet, idPage AS INTEGER, OPTIONAL membreConnecte AS Membre = NULL)

DIM tableau AS NEW HtmlTable
DIM action AS HtmlAction
DIM elmt AS XmlElement
DIM $message AS Message
DIM formreponse AS HtmlForm

IF sujet.Messages.Count > 1 THEN ThisPage.ActionsEnBas = TRUE

ThisPage.Titre.TextContent = sujet.Titre
ThisPage.AppendFilAriane(["Les Forums", sujet.Forum.Titre, sujet.Titre], ["forum.html", sujet.Forum.URL(), ""])

ThisPage.Contenu.Id = "forum"

IF membreConnecte THEN

IF membreConnecte.Id = sujet.Auteur.Id THEN
action = NEW HtmlAction
action.Alternate = If(sujet.Resolu, sujet.URLNonResolu, sujet.URLResolu)
action.TextContent = If(Sujet.Resolu, "Ne plus marquer résolu" "Marquer résolu")
action.ClassName = "resolu"
ThisPage.AddAction(action)
ENDIF

IF sujet.Abonne THEN
action = NEW HtmlAction
action.Alternate = Sujet.UrlDesAbonnement()
action.TextContent = "Se désabonner"
ELSE
action = NEW HtmlAction
action.Alternate = Sujet.UrlAbonnement()
action.TextContent = "S'abonner"
ENDIF
ThisPage.AddAction(action)

action = NEW HtmlAction
IF NOT sujet.Ferme THEN
action.Alternate = sujet.URLRepondre
action.TextContent = "Répondre"
ELSE
action.AppendFromText("<img src='images/icones/verouiller.png' class='icone' alt='' /> Ce sujet est fermé"
ENDIF
ThisPage.AddAction(action)

ENDIF

IF sujet.Resolu THEN
ThisPage.Contenu.AppendFromText("<p class='resolu'>Ce sujet est résolu.</p>"
ENDIF

tableau.Head.AppendFromText("<tr><td class=\"pagechooser\" colspan=\"2\">" & sujet.PageChooser(idPage) & "</td></tr>"
"<tr><th>Auteur</th><th>Messages</th></tr>")
IF sujet.Messages.Count > 1 THEN
tableau.Foot.AppendFromText("<tr><td class=\"pagechooser\" colspan=\"2\">" & sujet.PageChooser(idPage) & "</td></tr>")
ENDIF
tableau.Id = "messages"
FOR EACH $message IN sujet.Messages
tableau.AppendRow()
'En-tête
tableau[tableau.Max, 0].TagName = "th"
elmt = ThisPage.CreateElement("a")
elmt.AppendText($message.Auteur.Pseudo)
elmt.SetAttribute("href", $message.Auteur.URL)
tableau[tableau.Max, 0].AppendChild(elmt)
tableau[tableau.Max, 1].TagName = "th"
elmt = ThisPage.CreateElement("a")
elmt.TextContent = "#" & $message.Numero & " "
elmt.SetAttribute("href", sujet.Url($message.Numero))
elmt.Id = "m" & $message.Numero
tableau[tableau.Max, 1].AppendChild(elmt)
tableau[tableau.Max, 1].AppendText("Posté " LCase($message.StrDatePost))
IF membreConnecte THEN
elmt = ThisPage.CreateElement("a")
elmt.ClassName = "action"
elmt.AppendFromText("<img src='images/icones/quote.png' alt='' /> Citer")
elmt.SetAttribute("href", $message.UrlCiter)
elmt.SetAttribute("title", "Citer ce message")
tableau[tableau.Max, 1].AppendChild(elmt)
IF membreConnecte.Id = $message.Auteur.Id THEN
elmt = ThisPage.CreateElement("a")
elmt.ClassName = "action"
elmt.AppendFromText("<img src='images/icones/edit.png' alt='' /> Modifier")
elmt.SetAttribute("href", $message.UrlModifier)
elmt.SetAttribute("title", "Modifier ce message")
tableau[tableau.Max, 1].AppendChild(elmt)
ENDIF
ENDIF
'Contenu
tableau.AppendRow()
elmt = ThisPage.CreateElement("em")
elmt.AppendText($message.Auteur.Citation)
tableau[tableau.Max, 0].AppendChild(elmt)
elmt = ThisPage.CreateElement("img")
elmt.ClassName = "avatar"
elmt.SetAttribute("src", $message.Auteur.Avatar)
tableau[tableau.Max, 0].AppendChild(elmt)
tableau[tableau.Max, 1].AppendChildren(CodeParser.ParseBBCode($message.Contenu))
IF $message.Auteur.Signature THEN
elmt = NEW XmlElement("div")
elmt.ClassName = "signature"
elmt.AppendChildren(CodeParser.ParseBBCode($message.Auteur.Signature))
tableau[tableau.Max, 1].AppendChild(elmt)
ENDIF
NEXT

ThisPage.Contenu.AppendChild(tableau)

IF membreConnecte THEN
formreponse = NEW HtmlForm
formreponse.Action = sujet.URLRepondre
formreponse.AppendFromText("<h3>Réponse rapide</h3>"
formreponse.ClassName = "reponseRapide"
formreponse.AddTextArea("message")
formreponse.AddSubmitButton("Envoyer")
ThisPage.Contenu.AppendChild(formreponse)
ENDIF

END
Moins de texte dans une signature c'est agrandir son espace.
1