|
189 | 189 | source += pdfOpenFragment;
|
190 | 190 | }
|
191 | 191 |
|
192 |
| - let el_type = (embedType === "pdfjs" || embedType === "iframe") ? "iframe" : "embed"; |
193 |
| - let el = document.createElement(el_type); |
194 |
| - |
| 192 | + let el = document.createElement("iframe"); |
195 | 193 | el.className = "pdfobject";
|
196 | 194 | el.type = "application/pdf";
|
197 | 195 | el.title = title;
|
198 | 196 | el.src = source;
|
199 |
| - |
200 |
| - if(id){ |
201 |
| - el.id = id; |
202 |
| - } |
203 |
| - |
204 |
| - if(el_type === "iframe"){ |
205 |
| - el.allow = "fullscreen"; |
206 |
| - el.frameborder = "0"; |
207 |
| - } |
| 197 | + el.allow = "fullscreen"; |
| 198 | + el.frameborder = "0"; |
| 199 | + if(id){ el.id = id; } |
208 | 200 |
|
209 | 201 | if(!omitInlineStyles){
|
210 | 202 |
|
211 |
| - let style = (el_type === "embed") ? "overflow: auto;" : "border: none;"; |
| 203 | + let style = "border: none;"; |
212 | 204 |
|
213 | 205 | if(targetNode !== document.body){
|
214 | 206 | //assign width and height to target node
|
|
222 | 214 |
|
223 | 215 | }
|
224 | 216 |
|
225 |
| - //Allow developer to insert custom attribute on embed/iframe element, but ensure it does not conflict with attributes used by PDFObject |
| 217 | + //Allow developer to insert custom attribute on iframe element, but ensure it does not conflict with attributes used by PDFObject |
226 | 218 | let reservedTokens = ["className", "type", "title", "src", "style", "id", "allow", "frameborder"];
|
227 | 219 | if(customAttribute && customAttribute.key && reservedTokens.indexOf(customAttribute.key) === -1){
|
228 | 220 | el.setAttribute(customAttribute.key, (typeof customAttribute.value !== "undefined") ? customAttribute.value : "");
|
|
231 | 223 | targetNode.classList.add("pdfobject-container");
|
232 | 224 | targetNode.appendChild(el);
|
233 | 225 |
|
234 |
| - return targetNode.getElementsByTagName(el_type)[0]; |
| 226 | + return targetNode.getElementsByTagName("iframe")[0]; |
235 | 227 |
|
236 | 228 | };
|
237 | 229 |
|
|
256 | 248 | let supportRedirect = (typeof opt.supportRedirect === "boolean") ? opt.supportRedirect : false;
|
257 | 249 | let omitInlineStyles = (typeof opt.omitInlineStyles === "boolean") ? opt.omitInlineStyles : false;
|
258 | 250 | let suppressConsole = (typeof opt.suppressConsole === "boolean") ? opt.suppressConsole : false;
|
259 |
| - let forceIframe = (typeof opt.forceIframe === "boolean") ? opt.forceIframe : false; |
260 | 251 | let PDFJS_URL = opt.PDFJS_URL || false;
|
261 | 252 | let targetNode = getTargetElement(selector);
|
262 | 253 | let fallbackHTML = "";
|
|
289 | 280 | //Embed PDF if traditional support is provided, or if this developer is willing to roll with assumption
|
290 | 281 | //that modern desktop (not mobile) browsers natively support PDFs
|
291 | 282 | if(supportsPDFs || (assumptionMode && !isMobileDevice)){
|
292 |
| - |
293 |
| - //Should we use <embed> or <iframe>? In most cases <embed>. |
294 |
| - //Allow developer to force <iframe>, if desired |
295 |
| - //There is an edge case where Safari does not respect 302 redirect requests for PDF files when using <embed> element. |
296 |
| - //Redirect appears to work fine when using <iframe> instead of <embed> (Addresses issue #210) |
297 |
| - //Forcing Safari desktop to use iframe due to freezing bug in macOS 11 (Big Sur) |
298 |
| - let embedtype = (forceIframe || supportRedirect || isSafariDesktop) ? "iframe" : "embed"; |
299 |
| - |
300 |
| - return generatePDFObjectMarkup(embedtype, targetNode, url, pdfOpenFragment, width, height, id, title, omitInlineStyles, customAttribute); |
| 283 | + |
| 284 | + return generatePDFObjectMarkup("iframe", targetNode, url, pdfOpenFragment, width, height, id, title, omitInlineStyles, customAttribute); |
301 | 285 |
|
302 | 286 | }
|
303 | 287 |
|
|
0 commit comments