_FFTabAdd macht käse bei mehreren passiven Tabs

  • Hallo zusammen.
    hab eben festgestellt, dass in der _FFTabAdd ein bug ist.
    wenn man mehrere tabs mit ner schleife aufruft und diese nicht aktiv sein sollen passiert folgendes:


    Func _FFTabAdd(ByRef $Socket, $sURL = "about:blank", $bSelect = true)
    If Not __FFIsSocket($Socket) Then
    SetError(__FFError("_FFTabAdd", $_FF_ERROR_SocketError))
    Return 0
    EndIf

    If Not $bSelect Then
    _FFSetGet($Socket, "gBrowser.addTab()", 3000) <-- hier kommt ein neuer tab
    Else
    _FFSetGet($Socket, "gBrowser.addTab()" & @CRLF & _
    "gBrowser.tabContainer.selectedIndex = gBrowser.tabContainer.childNodes.length - 1", 3000)
    EndIf

    If $sURL <> "about:blank" Then _FFOpenURL($Socket,$sURL) <-- hier wird im tab 0 ne neue url geladen

    Return

    EndFunc ;==> _FFTabAdd


    danach wieder n tab mit namen (unbekannt) und tab 0 neue url usw.
    ich habe mir erlaubt die funktion umzuschreiben so dass sie funktionieren müsste:


    Func _FFTabAdd(ByRef $Socket, $sURL = "about:blank", $bSelect = true)
    If Not __FFIsSocket($Socket) Then
    SetError(__FFError("_FFTabAdd", $_FF_ERROR_SocketError))
    Return 0
    EndIf

    _FFSetGet($Socket, "gBrowser.addTab('" & $sURL &"')", 3000) ; hier wird der tab direkt mit der url geöffnet

    If $bSelect Then ; die prüfung auf False wird daher unnötig
    _FFSetGet($Socket, "gBrowser.tabContainer.selectedIndex = gBrowser.tabContainer.childNodes.length - 1", 3000)
    EndIf
    ;ebenso _FFOpenUrl
    Return

    EndFunc ;==> _FFTabAdd


    gefühlt ist die funktion jetzt auch wenigstens doppelt so schnell

    mfg

    TheCrap

    P.S:

    mir ist aufgefallen, dass _FFSetGet($Socket, "gBrowser.addTab('" & $sURL &"')", 3000) die zusätzlichen anführungszeichen braucht weil $sURL nicht samt den " übergeben wird. ka wieso.
    vielleicht kann man ja auch erst mit __FFIsURL prüfen obs ne url ist

    2 Mal editiert, zuletzt von TheCrap (7. Januar 2009 um 23:47)