diff --git a/web/ui_utils.js b/web/ui_utils.js index 0b2980ffc..69ba8dc78 100644 --- a/web/ui_utils.js +++ b/web/ui_utils.js @@ -117,6 +117,13 @@ function scrollIntoView(element, spot) { parent.scrollTop = offsetY; } +/** + * Event handler to suppress context menu. + */ +function noContextMenuHandler(e) { + e.preventDefault(); +} + /** * Returns the filename or guessed filename from the url (see issue 3455). * url {String} The original PDF location. diff --git a/web/viewer.html b/web/viewer.html index 14c54797b..b8a914d92 100644 --- a/web/viewer.html +++ b/web/viewer.html @@ -158,8 +158,6 @@ limitations under the License.
- - @@ -190,7 +188,7 @@ limitations under the License.
- diff --git a/web/viewer.js b/web/viewer.js index fd10930eb..6bf21ffba 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -17,7 +17,7 @@ /* globals PDFJS, PDFBug, FirefoxCom, Stats, Cache, PDFFindBar, CustomStyle, PDFFindController, ProgressBar, TextLayerBuilder, DownloadManager, getFileName, getOutputScale, scrollIntoView, getPDFFileNameFromURL, - PDFHistory */ + PDFHistory, noContextMenuHandler */ 'use strict'; @@ -796,11 +796,9 @@ var PDFView = { moreInfoButton.removeAttribute('hidden'); lessInfoButton.setAttribute('hidden', 'true'); }; - moreInfoButton.oncontextmenu = - lessInfoButton.oncontextmenu = - closeButton.oncontextmenu = function(e) { - e.preventDefault(); - }; + moreInfoButton.oncontextmenu = noContextMenuHandler; + lessInfoButton.oncontextmenu = noContextMenuHandler; + closeButton.oncontextmenu = noContextMenuHandler; moreInfoButton.removeAttribute('hidden'); lessInfoButton.setAttribute('hidden', 'true'); errorMoreInfo.value = moreInfoText; @@ -2208,7 +2206,16 @@ document.addEventListener('DOMContentLoaded', function webViewerLoad(evt) { //var file = window.location.href.split('#')[0]; //#endif -//#if !(FIREFOX || MOZCENTRAL) +//#if !(FIREFOX || MOZCENTRAL || CHROME) + var fileInput = document.createElement('input'); + fileInput.id = 'fileInput'; + fileInput.className = 'fileInput'; + fileInput.setAttribute('type', 'file'); + fileInput.setAttribute('style', + 'visibility: hidden; position: fixed; right: 0; top: 0'); + fileInput.oncontextmenu = noContextMenuHandler; + document.body.appendChild(fileInput); + if (!window.File || !window.FileReader || !window.FileList || !window.Blob) { document.getElementById('openFile').setAttribute('hidden', 'true'); } else { @@ -2300,6 +2307,9 @@ document.addEventListener('DOMContentLoaded', function webViewerLoad(evt) { } }); + // Suppress context menus for some controls + document.getElementById('scaleSelect').oncontextmenu = noContextMenuHandler; + var mainContainer = document.getElementById('mainContainer'); var outerContainer = document.getElementById('outerContainer'); mainContainer.addEventListener('transitionend', function(e) { @@ -2355,10 +2365,12 @@ document.addEventListener('DOMContentLoaded', function webViewerLoad(evt) { PDFView.presentationMode(); }); +//#if !(FIREFOX || MOZCENTRAL || CHROME) document.getElementById('openFile').addEventListener('click', function() { document.getElementById('fileInput').click(); }); +//#endif document.getElementById('print').addEventListener('click', function() {