From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Ricardo Wurmus Newsgroups: gmane.emacs.devel Subject: [PATCH 07/15] xwidget: Add function to find element by CSS selector Date: Mon, 24 Oct 2016 18:40:53 +0200 Message-ID: <20161024164101.26043-8-rekado@elephly.net> References: <20161024164101.26043-1-rekado@elephly.net> NNTP-Posting-Host: blaine.gmane.org X-Trace: blaine.gmane.org 1477327734 19752 195.159.176.226 (24 Oct 2016 16:48:54 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 24 Oct 2016 16:48:54 +0000 (UTC) Cc: Ricardo Wurmus To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Mon Oct 24 18:48:51 2016 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1byiQT-0003TW-8W for ged-emacs-devel@m.gmane.org; Mon, 24 Oct 2016 18:48:41 +0200 Original-Received: from localhost ([::1]:48168 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1byiQV-0004PI-Jx for ged-emacs-devel@m.gmane.org; Mon, 24 Oct 2016 12:48:43 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:41606) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1byiLK-00080Y-3g for emacs-devel@gnu.org; Mon, 24 Oct 2016 12:43:22 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1byiLH-0002vD-Bq for emacs-devel@gnu.org; Mon, 24 Oct 2016 12:43:22 -0400 Original-Received: from sender163-mail.zoho.com ([74.201.84.163]:21489) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1byiLH-0002uO-43 for emacs-devel@gnu.org; Mon, 24 Oct 2016 12:43:19 -0400 Original-Received: from localhost (89.204.138.233 [89.204.138.233]) by mx.zohomail.com with SMTPS id 1477327392676423.0740547841456; Mon, 24 Oct 2016 09:43:12 -0700 (PDT) X-Mailer: git-send-email 2.10.1 In-Reply-To: <20161024164101.26043-1-rekado@elephly.net> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 74.201.84.163 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:208715 Archived-At: * lisp/xwidget.el (xwidget-webkit-show-element): New procedure. --- lisp/xwidget.el | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lisp/xwidget.el b/lisp/xwidget.el index e54d1f8..d7ef44d 100644 --- a/lisp/xwidget.el +++ b/lisp/xwidget.el @@ -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." -- 2.10.1