1
0
mirror of https://github.com/MontFerret/ferret.git synced 2025-10-30 23:37:40 +02:00

#172 Added SCROLL_TOP and SCROLL_BOTTOM (#174)

This commit is contained in:
Tim Voronov
2018-11-12 22:26:02 -05:00
committed by GitHub
parent 291d07cbef
commit 9131c676d9
4 changed files with 83 additions and 0 deletions

View File

@@ -34,6 +34,8 @@ func NewLib() map[string]core.Function {
"INNER_TEXT_ALL": InnerTextAll,
"SELECT": Select,
"SCREENSHOT": Screenshot,
"SCROLL_TOP": ScrollTop,
"SCROLL_BOTTOM": ScrollBottom,
"PAGINATION": Pagination,
"PDF": PDF,
"DOWNLOAD": Download,

56
pkg/stdlib/html/scroll.go Normal file
View File

@@ -0,0 +1,56 @@
package html
import (
"context"
"github.com/MontFerret/ferret/pkg/html/dynamic"
"github.com/MontFerret/ferret/pkg/runtime/core"
"github.com/MontFerret/ferret/pkg/runtime/values"
)
// ScrollTop Scrolls the document's window to its top.
// @param doc (Document) - Target document.
func ScrollTop(_ context.Context, args ...core.Value) (core.Value, error) {
err := core.ValidateArgs(args, 1, 1)
if err != nil {
return values.None, err
}
err = core.ValidateType(args[0], core.HTMLDocumentType)
if err != nil {
return values.None, err
}
doc, ok := args[0].(*dynamic.HTMLDocument)
if !ok {
return values.None, core.Errors(core.ErrInvalidType, ErrNotDynamic)
}
return values.None, doc.ScrollTop()
}
// ScrollTop Scrolls the document's window to its bottom.
// @param doc (Document) - Target document.
func ScrollBottom(_ context.Context, args ...core.Value) (core.Value, error) {
err := core.ValidateArgs(args, 1, 1)
if err != nil {
return values.None, err
}
err = core.ValidateType(args[0], core.HTMLDocumentType)
if err != nil {
return values.None, err
}
doc, ok := args[0].(*dynamic.HTMLDocument)
if !ok {
return values.None, core.Errors(core.ErrInvalidType, ErrNotDynamic)
}
return values.None, doc.ScrollBottom()
}