Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[TuT] IE.au3 - Obiektowe odpowiedniki funkcji


Rekomendowane odpowiedzi

Opublikowano

Witam.

Z tego powodu iż z niewiadomych powodów IE.au3 się mi buntuje na komputerze i normalne funkcje nie wykazują większych chęci do współpracy, piszę tego tutka.

 

Tutaj po krótce opiszę najważniejsze funkcje, pokażę składnię oraz obiektowy jej odpowiednik.

Przez obiektowy odpowiednik uznaję na przykład

$oIE.Navigate

zamiast

_IENavigate

 

Oczywiście jeśli będziemy używali TYLKO odpowiedników (aliasów), nie musimy dołączać IE.au3 do skryptu!

 

No okej, bez przeciągania, lista ((prawie) alfabetycznie - niektóre funkcje dałem nad innymi dla przejrzystości :P):

 

Funkcja: _IEAction

Opis oraz składnia:

Służy do wykonania akcji na danym obiekcie na stronie (jako $objekt podajemy uchwyt do niego) lub obiekcie Internet Explorera.

_IEAction($obiekt, "akcja")

Odpowiedniki (dla każdej akcji osobno!):

 

Dla akcji "click"

$obiekt.Click()

Dla akcji "disable" oraz "enable"

$obiekt.disabled = True/False

(w zależności, True jeśli chcemy aktywować obiekt, False jeśli chcemy go dezaktywować)

Dla akcji "focus"

$obiekt.Focus()

Dla akcji "copy"

$obiekt.document.ExecCommand("Copy")

Dla akcji "cut"

$obiekt.document.ExecCommand("Cut")

Dla akcji "paste"

$obiekt.document.ExecCommand("Paste")

Dla akcji "delete"

$obiekt.document.ExecCommand("Delete")

Dla akcji "saveas"

$obiekt.document.ExecCommand("SaveAs")

Dla akcji "refresh"

$obiekt.document.ExecCommand("Refresh")

Dla akcji selectall"

$obiekt.document.ExecCommand("SelectAll")

Dla akcji "unselect"

$obiekt.document.ExecCommand("Unselect")

Dla akcji "print"

$obiekt.document.Parentwindow.Print()

Dla akcji "printdefault"

$obiekt.execWB(6, 2)

Dla akcji "back"

$obiekt.GoBack()

Dla akcji "blur"

$obiekt.Blur()

Dla akcji "forward"

$obiekt.GoForward()

Dla akcji "home"

$obiekt.GoHome()

Dla akcji "invisible" oraz "visible"

$obiekt.visible = True/False

(tak jak w wypadku disabled/enabled - True to widoczny, False to niewidoczny

Dla akcji "search"

$obiekt.GoSearch()

Dla akcji "stop"

$obiekt.Stop()

Dla akcji "quit"

$obiekt.Quit()

 

 

Funkcja: _IEBodyReadHTML

Opis oraz składnia:

Służy do odczytywania kodu HTML ze strony między znacznikami <body></body>.

Jako $objekt podajemy obiekt przeglądarki.

_IEBodyReadHTML($objekt)

Odpowiednik:

$obiekt.document.body.innerHTML

w powyższym obiekcie jest trzymany aktualny kod strony - jeśli chcemy go zachować to wsadzamy go do jakiejś zmiennej, na przykład:

$BodyHTML = $oIE.document.body.innerHTML ;i teraz w $BodyHTML znajduje się interesujący nas kod

 

Funkcja: _IEBodyReadText

Opis oraz składnia:

Służy do tego samego co funkcja wyżej, jedyna różnica że odczytuje tylko tekst.

_IEBodyReadText($objekt)

Odpowiednik:

$obiekt.document.body.innerText

i tak jak wyżej, w powyższym obiekcie jest trzymany aktualny tekst ze strony.

 

Funkcja: _IEBodyWriteHTML

Opis oraz składnia:

Służy do ZAMIANY CAŁEGO aktualnego kodu HTML na nasz kod.

Jeśli chcemy jedynie zmodyfikować kod, musimy go odczytać, pobawić się z funkcjami do modyfikacji stringów a potem nowy kod podmienić tą funkcją.

_IEBodyWriteHTML($objekt, "kod")

Odpowiednik:

$obiekt.document.body.innerHTML = "nowy_kod"

Podmiana kodu nie różni się z modyfikacją wartości zmiennej - więc ten obiekt z kodem możemy dowolnie modyfikować bez konieczności zapisu go do innej zmiennej.

Musimy tylko po zakończeniu modyfikacji kodu odświeżyć stronę w ten sposób:

$nowy_obiekt = $objekt.document
_IELoadWait($nowy_obiekt)

$obiekt to ten sam obiekt którego użyliśmy podczas modyfikacji kodu.

Rzecz jasna możemy użyć aliasa funkcji _IELoadWait :P

 

Funkcja: _IECreate

Opis oraz składnia:

Służy do tworzenia nowego obiektu Internet Explorera

_IECreate("adres", $podlacz, $widzialny, $czekaj, $skup

$podlacz to wartosc 1/0 (albo True/False) która mówi o tym, czy program ma się podpiąć pod aktualne okienko IE, czy ma tworzyć nowe.

$widzialny to też wartość 1/0 która mówi czy okienko ma być widzialne, czy nie

$czekaj to znowu 1/0 i mówi o tym, czy program ma czekać dopóki aktualna strona się nie załaduje

$skup to parametr z wartościami 1/0 który mówi czy okienko ie ma być na wierzchu po odpaleniu (ustawi się na 0 jeśli paramert $widzialny też jest na 0)

Odpowiednik:

$obiekt = ObjCreate("InternetExplorer.Application")

W ten sposób tworzymy 'czysty' obiekt IE, niewidzialny i zajmujący naprawdę mało pamięci - raj :D

Ale rzecz jasna możemy już nim sterować za pomocą funkcji i ich aliasów.

Żeby sprawdzić czy tworzenie się powiodło, możemy użyć funkcji IsObj($objekt), która zwróci False jeśli coś poszło nie tak.

 

Funkcja: _IECreateEmbedded

Opis oraz składnia:

Służy do stworzenia 'czystego' obiektu Internet Explorera

_IECreateEmbedded()

Odpowiednik:

$obiekt = ObjCreate("Shell.Explorer.2")

To tworzy nam obiekt który jest przydatny tylko do wsadzenia w GUI, oraz można nim sterować tylko poprzez $objekt.Navigate. Dlatego lepiej używać aliasa _IECreate.

 

Funkcja: _IEDocGetObj

Opis oraz składnia:

Służy do pobrania uchwytu do strony.

_IEDocGetObj($objekt)

Jako $objekt podajemy uchwyt od _IECreate albo jego aliasu

Odpowiednik:

$obiekt.document

 

Funkcja: _IEDocInsertHTML

Opis oraz składnia:

Służy do wsadzenia (ale nie podmiany) kodu HTML w kod strony

_IEDocInsertHTML($objekt, $kod[, "gdzie"])

Jako $objekt podajemy uchwyt od funkcji _IEDocGetObj albo jej aliasa.

jako parametr "gdzie" (który jest parametrem opcjonalnym) możemy podać:

beforebegin - przed początkiem kodu (?)

afterbegin - na początku kodu

beforeend - na końcu kodu (domyślnie)

afterend - po zakończeniu kodu (?)

Odpowiednik:

$obiekt.InsertAdjacentHTML("gdzie", $kod)

Wszystko w aliasie wygląda tak samo jak w normalnej funkcji.

 

Funkcja: _IEDocInsertText

Opis oraz składnia:

Służy do wstawienia (ale nie zamiany) tekstu do strony

_IEDocInsertText($obiekt, $tekst[, "gdzie"])

Sytuacja wygląda tak samo jak przy _IEDocInsertHTML

Odpowiednik:

$obiekt.InsertAdjacentText($gdzie, $tekst)

I tu też tak samo jak przy aliasie _IEDocInsertHTML

 

Funkcja: _IEDocReadHTML

Opis oraz składnia:

Służy do odczytu całego kodu HTML strony

_IEDocReadHTML($objekt)

I tu też podajemy jako $objekt uchwyt od _IEDocGetObj

Odpowiednik:

$obiekt.document.documentElement.outerHTML

Powyższy obiekt to zmienna z kodem HTML strony. Jako $objekt podajemy uchwyt od _IEDocGetObj.

 

Funkcja: _IEDocReadText

Opis oraz składnia:

Służy do odczytu całego tekstu ze strony

_IEDocReadText($obiekt)

Wszystko identycznie jak w _IEDocReadHTML

Odpowiednik:

$obiekt.document.documentElement.outerText

I tu też zmienna zawierająca tekst na stronie

 

Funkcja: _IEGetObjByName

Opis oraz składnia:

Służy do pozyskania uchwytu do obiektu poprzez jego nazwę

_IEGetObjByName($obiekt, $nazwa], $index = 0])

$obiekt to uchwyt do obiektu od _IECreate.

$nazwa to nazwa ze znacznika 'name' w kodzie HTML obiektu.

$index to numer obiektu (jeśli jest kilka obiektów o tej samej nazwie to pierwszy ma numer 0, drugi 1, trzeci 2 itd.)

Odpowiednik:

$obiekt.document.GetElementsByName($nazwa)

Powyżej zwróci nam się element o podanej nazwie i indeksie 0.

Jeśli chcemy żeby zwrócił nam się element z określonym indeksem, używamy tego:

$obiekt.document.GetElementsByName($nazwa).item($index)

Do uzyskania liczby obiektów z taką nazwą używamy tego:

$obiekt.document.GetElementsByName($nazwa).length

Używamy IsObj żeby dowiedzieć się czy wszystko jest OK.

 

Funkcja: _IEGetObjById

Opis oraz składnia:

Służy do pozyskania uchwytu do obiektu poprzez jego nazwę

_IEGetObjById($obiekt, $id)

Tak samo jak wyżej, $obiekt to uchwyt od _IECreate a $id to id z kodu kontrolki

Odpowiednik:

$obiekt.document.getElementById($id)

To zwraca uchwyt od obiektu.

Używamy IsObj żeby dowiedzieć się czy wszystko jest OK.

 

Niestety nie mam gdzie dopisać większej ilości funkcji, po prostu zrobię to w osobnym poście, ponieważ BBCode mi się buntuje.

 

Narazie tyle, ale jeszcze dopiszę wszystkie funkcje.

Jeśli macie jakieś pytania - piszcie śmiało tutaj.

 

To nie jest III część mojego tuta, jedynie dodatek do niego - III część napiszę po skończeniu tego.

 

I żeby uprzedzić pytania "Skąd to masz?" - Wystarczy poczytać kod funkcji z IE.au3 - wszystko tam jest jak na talerzu ;D

 

Podziękowania dla Farex'a za zdjęcie 5% :3

846331404756772371599.jpeg

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...