]> git.eshelyaron.com Git - emacs.git/commitdiff
xwidget: Add function to find element by CSS selector
authorRicardo Wurmus <rekado@elephly.net>
Wed, 26 Oct 2016 06:00:35 +0000 (23:00 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 26 Oct 2016 06:07:13 +0000 (23:07 -0700)
* lisp/xwidget.el (xwidget-webkit-show-element): New procedure.

lisp/xwidget.el

index e54d1f80c7288d80616f90a2a24b482f59610a04..d7ef44d389fd527f017f2b0d49bed03f39101cf7 100644 (file)
@@ -334,6 +334,23 @@ XW is the xwidget identifier, TEXT is retrieved from the webkit."
   ;;TODO convert linefeed to \n
   )
 
+(defun xwidget-webkit-show-element (xw element-selector)
+  "Make webkit xwidget XW show a named element ELEMENT-SELECTOR.
+The ELEMENT-SELECTOR must be a valid CSS selector.  For example,
+use this to display an anchor."
+  (interactive (list (xwidget-webkit-current-session)
+                     (read-string "Element selector: ")))
+  (xwidget-webkit-execute-script
+   xw
+   (format "
+(function (query) {
+  var el = document.querySelector(query);
+  if (el !== null) {
+    window.scrollTo(0, el.offsetTop);
+  }
+})('%s');"
+    element-selector)))
+
 (defun xwidget-webkit-show-named-element (xw element-name)
   "Make webkit xwidget XW show a named element ELEMENT-NAME.
 For example, use this to display an anchor."