From 2f66c80e7d59f2dd22036b17e77a48e547705d96 Mon Sep 17 00:00:00 2001 From: Joseph Mirabel Date: Sun, 22 Mar 2020 13:15:24 +0100 Subject: Fix CROS javascript issue when giving focus to search result frame. --- src/searchindex.cpp | 6 ++++++ templates/html/htmlsearchresult.tpl | 6 ++++++ templates/html/search.js | 5 ++--- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/searchindex.cpp b/src/searchindex.cpp index 0296b93..0e3ef44 100644 --- a/src/searchindex.cpp +++ b/src/searchindex.cpp @@ -1007,6 +1007,12 @@ void writeJavaScriptSearchIndex() t << "document.getElementById(\"NoMatches\").style.display=\"none\";" << endl; t << "var searchResults = new SearchResults(\"searchResults\");" << endl; t << "searchResults.Search();" << endl; + t << "window.addEventListener(\"message\", function(event) {" << endl; + t << " if (event.data == \"take_focus\") {" << endl; + t << " var elem = searchResults.NavNext(0);" << endl; + t << " if (elem) elem.focus();" << endl; + t << " }" << endl; + t << "});" << endl; t << "/* @license-end */\n"; t << "-->" << endl; t << "" << endl; // SRIndex diff --git a/templates/html/htmlsearchresult.tpl b/templates/html/htmlsearchresult.tpl index db37a5d..4e15414 100644 --- a/templates/html/htmlsearchresult.tpl +++ b/templates/html/htmlsearchresult.tpl @@ -24,6 +24,12 @@ document.getElementById("Loading").style.display="none"; document.getElementById("NoMatches").style.display="none"; var searchResults = new SearchResults("searchResults"); searchResults.Search(); +window.addEventListener("message", function(event) { + if (event.data == "take_focus") { + var elem = searchResults.NavNext(0); + if (elem) elem.focus(); + } +}); /* @license-end */ --> diff --git a/templates/html/search.js b/templates/html/search.js index a554ab9..86fbb9c 100644 --- a/templates/html/search.js +++ b/templates/html/search.js @@ -200,10 +200,9 @@ function SearchBox(name, resultsPath, inFrame, label) } return; } - else if (window.frames.MSearchResults.searchResults) + else { - var elem = window.frames.MSearchResults.searchResults.NavNext(0); - if (elem) elem.focus(); + window.frames.MSearchResults.postMessage("take_focus", "*"); } } else if (e.keyCode==27) // Escape out of the search field -- cgit v0.12