Red de conocimiento informático - Aprendizaje de código fuente - Escribir un navegador en un lenguaje sencillo

Escribir un navegador en un lenguaje sencillo

.Versión 2

.Título de Constant Software, ""Simple Browser""

.Constant WM_SYSCOMMAND, "274"

.Constant SC_MAXIMIZE, "61488"

.Versión 2

.Soporta biblioteca WebBrowser

. Soporta biblioteca iext3

. Admite biblioteca iext

Ventana de programa programa 1

Variable de ensamblaje matriz WebBox, WebBrowser, "0"

Variable de ensamblaje marco web actual, WebBrowser<. /p>

. Subcarpeta actual de la variable de ensamblaje, número entero

. Subrutina __LaunchWindow_Created

_LaunchWindow.Title = #Título del software

_Startup Window.Enviar mensaje ( #WM_SYSCOMMAND, #SC_MAXIMIZE, 0) ' Maximizar ventana

Selección avanzada Clip 1. Eliminar subclip (0)

_Botón 1_Clicked ()

.Subrutina __El tamaño de la ventana de inicio cambió

.altura, tome el ancho del área de usuario (), barra de estado1.borde superior - Clip de selección avanzada1.Borde superior - Clip de selección avanzada1.Altura)

Botón1.Izquierda = FetchUserAreaWidth ( ) - Button1.Width - 8

EditBox1.Width = Button1.Left - EditBox1.Left - 5

Recuento del primer bucle (Obtener miembro de la matriz (matriz WebBox), i)<. /p>

Matriz WebBox[i]. Mover(WebBrowser1.left, WebBrowser1.top, WebBrowser1.width, WebBrowser1.height)

. El ciclo de conteo termina ()

.Subroutine_Button1_Clicked

.Si es verdadero (elimine el primer y último espacio en blanco (cuadro de edición 1.content) ≠ "")

Nueva página (borrar el primer y último espacio en blanco (cuadro de edición 1.contenido))

.Finalizar si es verdadero

.Nueva página de subrutina

.Parámetros URL, tipo de texto

. Índice de subcarpeta de variable local, número entero

. Variable local i, número entero

. ), i)

Matriz de marcos de página web [i]. Visual = false

.Count loop tail()

Copiar componente de ventana (WebBrowser1, WebBox actual)

Miembro de conexión (matriz de WebBox, WebBox actual) p>

El WebBox actual.

Mover(WebBrowser1.left, WebBrowser1.top, WebBrowser1.width, WebBrowser1.height)

WebBox actual. Visual = Verdadero

. if (Carpeta de selección avanzada1.tomar el nombre de la subcarpeta (0) = "" )

Subcarpeta actual = 0

Carpeta de selección avanzada1.colocar el nombre de la subcarpeta (0, "cargar.. ." )

De lo contrario

Subcarpeta actual = Carpeta de selección avanzada 1.Agregar subcarpeta ("cargar...", , )

Carpeta de selección avanzada 1.Actual. Subcarpeta = subcarpeta actual

.Si final

.Si es verdadero (Dirección web ≠ "")

Cuadro web actual Navegar (Dirección web, , , )

.End if true

.Subrutina_Carpeta de selección avanzada 1_Subcarpeta cambiada

.Variable local i, entero

Subcarpeta actual = Carpeta de selección avanzada 1.subcarpeta actual

Marco web actual = matriz de marcos web [subcarpeta actual 1]

Primero el bucle de conteo (obtener miembros de la matriz (matriz de marco web), i)

<. p> Matriz de marco web [i]. Visual = false

.Count loop end ()

Cuadro actual.Visual = True

_Launch Window.Title = Cuadro de página actual.GetDocument ().Read Obtenga el atributo de texto ("título",)

Subroutine_Advanced_Select_Clip1_SubClip_Header_Right_Clicked

. Índice de subcarpeta de parámetros, número entero

. Si es verdadero (índice de subcarpeta = subcarpeta actual)

El marco de la página web actual. Destroy ()

Eliminar miembro (matriz WebBox, subcarpeta actual 1, 1)

. if (Avanzado Seleccionar clip 1.Número de subclips () > 1)

Avanzado Seleccionar clip 1. Eliminar subclip (subclip actual)

Clip de selección avanzada 1.Número de subclips () - 1

_Clip de selección avanzada 1_Subclips cambiados ()

. De lo contrario

Fragmento de selección avanzada 1. Establezca el nombre del subfragmento (0, "")

Nueva página ("about:blank")

Si finaliza.

.

Si es verdadero, final

.Subrutina _WebBrowser1_StatusTextChange, texto de estado cambiado

.Texto de parámetro, tipo de texto

. Variables locales EventComponent, WebBrowser

EventComponent = FetchEventComponent ()

.Si es verdadero (Event Component = WebBox actual)

StatusBar1.SetText (0, Texto)

.Finalizar si es verdadero

. Subrutina _WebBrowser1_TitleChange, El título ha cambiado

. Texto de parámetro, tipo de texto

. Componente de eventos de variables locales, WebBrowser

. Variable local i, entero

EventComponent = fetchEventComponent ()

.Si es verdadero (EventComponent = CurrentWebBox)

_StartWindow.Title = Texto " - " # Título del software

.Finalizar si es verdadero

.Cuenta el primer bucle (obtener miembros de la matriz (Web Box Array), i)

.Si es verdadero (Web Box Array [ i] = Componente de evento)

Carpeta de selección avanzada 1.Colocar nombre de carpeta (i - 1, Recuperar texto a la izquierda (Texto, 16))

Carpeta de selección avanzada 1.Indicador de colocación de carpeta Texto (i - 1, Texto)

.Finalizar si es verdadero

.Fin del ciclo de conteo ()

.Subroutine_WebBrowser1_NewWindow2, , , aparece una nueva ventana

.Parámetro ppDisp, objeto, ver

.Parámetro Cancelar, lógica, referencia

Nueva página ("")

ppDisp = Web actual marco de página. Subrutina _WebBrowser1_DownloadComplete, , , descarga completada

. Variables locales EventComponent, WebBrowser

EventComponent = FetchEventComponent ()

.Si es verdadero (Event Component = cuadro web actual)

EditBox1.Content = Event Component.LocationURL 'Dirección actual

. Si es verdadero final

. Subrutina _Toolbar1_Clicked

Índice del botón de parámetro, número entero

Comienza el juicio (índice del botón = 1)

Cuadro de página actual.GoBack () ' Regresar

.

Comienza el juicio (índice del botón = 2)

Cuadro de página actual.GoForward () ' Adelante

.GoForward () ' Adelante

.Judge (Índice del botón = 2) 3)

WebBox.Stop actual () ' Detener

.Refresh () ' Actualizar

. Juez (índice del botón = 4)

Cuadro actual. Predeterminado

Fin del juicio

. Subrutina _EditBox1_Press una tecla, lógica

Código de clave de parámetro, entero

. Estado de la tecla de función del parámetro, número entero

. Si es verdadero (código clave = #enter)

_Button1_clicked ()

. End if true

Para obtener soporte específico de la biblioteca, visite el foro oficial.