diff --git a/qutebrowser/browser/hints.py b/qutebrowser/browser/hints.py index 26fd02fbc..4bc9941a8 100644 --- a/qutebrowser/browser/hints.py +++ b/qutebrowser/browser/hints.py @@ -463,6 +463,7 @@ class HintManager(QObject): QMouseEvent(QEvent.MouseButtonRelease, pos, Qt.LeftButton, Qt.NoButton, modifiers), ] + elem.remove_target() for evt in events: self.mouse_event.emit(evt) if elem.is_text_input() and elem.is_editable(): diff --git a/qutebrowser/browser/webelem.py b/qutebrowser/browser/webelem.py index 49f4bfc27..f18bea65a 100644 --- a/qutebrowser/browser/webelem.py +++ b/qutebrowser/browser/webelem.py @@ -285,6 +285,13 @@ class WebElementWrapper(collections.abc.MutableMapping): tag = self._elem.tagName().lower() return self.get('role', None) in roles or tag in ('input', 'textarea') + def remove_target(self): + """Remove target from link""" + if self._elem.tagName().lower() == 'a': + self._elem.removeAttribute('target') + elif self.parent().tagName().lower() == 'a': + self.parent().removeAttribute('target') + def debug_text(self): """Get a text based on an element suitable for debug output.""" self._check_vanished()