IE Navigation Vor zurück

  • guten Morgen zusammen,
    ein neuer Tag ein neues Problem:
    Ich habe mehrere Tabs mit je einer Internetseite.

    Wenn ich z.B. Tab 1 wähle
    dann kann ich wieder mit dem Buttom zurückblättern
    bei den anderen Tabs geht das nicht.
    Das hat irgendwie mit den arrays zu tun

    [autoit]


    Case $btnzurueck
    _IEAction($aIE[0],"back"); rückwärts funktioniert bei TAB 1

    [/autoit]

    wenn ich nun auf den TAB 4 Klicke
    und dann auf den Button zurück passiert nichts!


    Hier werden die Tabs gemacht:

    [autoit]


    $iIE = UBound($aIE)
    _ArrayAdd($Tab, GUICtrlCreateTabItem($Titel & $iIE))
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    _ArrayAdd($aIE, _IECreateEmbedded())
    $aPos = ControlGetPos($gui, '', $TabParent) ; Größe des TAB-Controls
    GUICtrlCreateObj($aIE[$iIE], 40 + ($aPos[0] - 20), 100 + ($aPos[1] - 60), 700 + ($aPos[2] - 760), 460 + ($aPos[3] - 520))
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    GUICtrlCreateTabItem("") ; end tabitem definition
    GUISwitch($gui, $Tab[UBound($Tab)-1]) ; umschalten auf den neuen Tab
    $Test = _IENavigate($aIE[$iIE],$WebAnzeiger)

    [/autoit]

    Grüße
    Ilse ;)

    Einmal editiert, zuletzt von Ilse (4. November 2010 um 14:06)

  • Du hast doch auch im Array den Index 0 gewählt. Wenn dann musst du vorher feststellen welche Tab offen ist.

  • Hallo m-obi,

    das dachte ich mir auch schon,
    aber wie kann man das prüfen, daß z.B. der Tab 5 aktiv ist.
    Muß ich das mit case machen?

    Wenn ich 20 oder 30 Tabs anlege muß das ja immer stimmen
    Ich tappe momentan absolut im dunkeln.

    Grüße
    Ilse ;)

  • Probier mal das:

    [autoit]

    Case $btnzurueck
    _IEAction($aIE[GUICtrlRead(hier komm die Variable von GUICtrlCreateTab hin)],"back")

    [/autoit]
  • Hallo m-obi,

    ich habe alles nochmal so probiert wie du vorgeschlagen hast,
    geht leider immer noch nicht!

    [autoit]


    Case $btnzurueck
    _IEAction($aIE[GUICtrlRead($Tab)],"back")

    [/autoit]

    Folgendes:
    Wähle ich den ersten Tab, dann klappt oben der Code
    Wähle ich einen anderen Tab, dann klappt es nicht!

  • Hallo m-obi,

    hier ist der Code:
    Das ico ist noch über dem Button (...)

    [autoit]


    #include <Array.au3>
    #include <GUIConstantsEx.au3>
    #include <IE.au3>
    #include <WindowsConstants.au3>

    [/autoit][autoit][/autoit][autoit]

    _IEErrorHandlerRegister()

    [/autoit][autoit][/autoit][autoit]

    Dim $oIE[1]
    $oIE[0] = _IECreateEmbedded()
    Dim $Tab[1]

    [/autoit][autoit][/autoit][autoit]

    $gui = GUICreate("Browser", 800, 600, -1, -1, BitOr($GUI_SS_DEFAULT_GUI, $WS_SIZEBOX, $WS_MAXIMIZEBOX))
    $NewTab = GUICtrlCreateButton("Neuer Tab", 20, 20, 80, 25)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    $input = GUICtrlCreateInput("", 120, 20, 400, 25)
    GUICtrlSetResizing(-1, $GUI_DOCKALL)
    $TabParent = GUICtrlCreateTab(20, 60, 760, 520)
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    $Tab[0] = GUICtrlCreateTabItem("Google")
    GUICtrlCreateObj($oIE[0], 40, 100, 700, 460)
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    GUICtrlCreateTabItem("") ; end tabitem definition
    $btnzurueck = GUICtrlCreateIcon(@ScriptDir & "\button-links.ico", 100, 16, 8, 49, 31)
    GUICtrlSetResizing(-1, $GUI_DOCKAUTO+$GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
    GUISetState()

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    _IENavigate($oIE[0], "http://www.google.de")
    GUICtrlSetData($input, _IEPropertyGet($oIE[0], "locationurl"))

    [/autoit][autoit][/autoit][autoit]

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $NewTab
    $iIE = UBound($oIE)
    _ArrayAdd($Tab, GUICtrlCreateTabItem("Tab" & $iIE))
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    _ArrayAdd($oIE, _IECreateEmbedded())
    $aPos = ControlGetPos($gui, '', $TabParent) ; Größe des TAB-Controls
    GUICtrlCreateObj($oIE[$iIE], 40 + ($aPos[0] - 20), 100 + ($aPos[1] - 60), 700 + ($aPos[2] - 760), 460 + ($aPos[3] - 520))
    GUICtrlSetResizing(-1, $GUI_DOCKBORDERS)
    GUICtrlCreateTabItem("") ; end tabitem definition
    GUISwitch($gui, $Tab[UBound($Tab)-1]) ; umschalten auf den neuen Tab
    _IENavigate($oIE[$iIE], "http://www.google.de")
    Case $input
    $selected = GUICtrlRead($TabParent)
    _IENavigate($oIE[$selected], GUICtrlRead($input))
    WinSetTitle($gui, "", _IEPropertyGet($oIE[$selected], "locationname"))
    Case $btnzurueck
    _IEAction($oIE[0],"back"); Geht in der Historyliste einen Eintrag rückwärts.

    [/autoit][autoit][/autoit][autoit]

    Case $TabParent
    $selected = GUICtrlRead($TabParent)
    WinSetTitle($gui, "", _IEPropertyGet($oIE[$selected], "locationname"))
    GUICtrlSetData($input, _IEPropertyGet($oIE[$selected], "locationurl"))
    EndSwitch
    WEnd

    [/autoit]