--- a/WebBrowser/Tools/WebHitTestResult.py Tue Mar 19 19:54:17 2019 +0100 +++ b/WebBrowser/Tools/WebHitTestResult.py Wed Mar 20 19:22:38 2019 +0100 @@ -69,6 +69,9 @@ return false; return window.getSelection().containsNode(e, true); }} + function attributeStr(e, a) {{ + return e.getAttribute(a) || ''; + }} var res = {{ baseUrl: document.baseURI, alternateText: e.getAttribute('alt'), @@ -86,16 +89,16 @@ var r = e.getBoundingClientRect(); res.boundingRect = [r.top, r.left, r.width, r.height]; if (e.tagName.toLowerCase() == 'img') - res.imageUrl = e.getAttribute('src').trim(); + res.imageUrl = attributeStr(e, 'src').trim(); if (e.tagName.toLowerCase() == 'a') {{ res.linkTitle = e.text; - res.linkUrl = e.getAttribute('href').trim(); + res.linkUrl = attributeStr(e, 'href').trim(); }} while (e) {{ if (res.linkTitle == '' && e.tagName.toLowerCase() == 'a') res.linkTitle = e.text; if (res.linkUrl == '' && e.tagName.toLowerCase() == 'a') - res.linkUrl = e.getAttribute('href').trim(); + res.linkUrl = attributeStr(e, 'href').trim(); if (res.mediaUrl == '' && isMediaElement(e)) {{ res.mediaUrl = e.currentSrc; res.mediaPaused = e.paused;