From 28d340679a4bb767e244e2a2b8840a1b5487df78 Mon Sep 17 00:00:00 2001 From: Yury Delendik Date: Thu, 5 Nov 2015 19:30:59 -0600 Subject: [PATCH] Uses document.currentScript for pdf.worker.js path. --- src/pdf.js | 6 ++---- web/compatibility.js | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/pdf.js b/src/pdf.js index 694891ca3..6d838eb5c 100644 --- a/src/pdf.js +++ b/src/pdf.js @@ -42,10 +42,8 @@ if (!PDFJS.workerSrc && typeof document !== 'undefined') { // workerSrc is not set -- using last script url to define default location PDFJS.workerSrc = (function () { 'use strict'; - var scriptTagContainer = document.body || - document.getElementsByTagName('head')[0]; - var pdfjsSrc = scriptTagContainer.lastChild.src; - return pdfjsSrc && pdfjsSrc.replace(/\.js$/i, '.worker.js'); + var pdfJsSrc = document.currentScript.src; + return pdfJsSrc && pdfJsSrc.replace(/\.js$/i, '.worker.js'); })(); } //#endif diff --git a/web/compatibility.js b/web/compatibility.js index 6d91057f1..594c20bcb 100644 --- a/web/compatibility.js +++ b/web/compatibility.js @@ -577,3 +577,19 @@ if (typeof PDFJS === 'undefined') { PDFJS.disableFullscreen = true; } })(); + +// Provides document.currentScript support +// Support: IE, Chrome<29. +(function checkCurrentScript() { + if ('currentScript' in document) { + return; + } + Object.defineProperty(document, 'currentScript', { + get: function () { + var scripts = document.getElementsByTagName('script'); + return scripts[scripts.length - 1]; + }, + enumerable: true, + configurable: true + }); +})();