fix pdf.js预览不可复制
This commit is contained in:
+188
-37
@@ -21,7 +21,7 @@ Adobe CMap resources are covered by their own copyright but the same license:
|
|||||||
See https://github.com/adobe-type-tools/cmap-resources
|
See https://github.com/adobe-type-tools/cmap-resources
|
||||||
-->
|
-->
|
||||||
<html dir="ltr" mozdisallowselectionprint>
|
<html dir="ltr" mozdisallowselectionprint>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||||
<meta name="google" content="notranslate">
|
<meta name="google" content="notranslate">
|
||||||
@@ -29,31 +29,59 @@ See https://github.com/adobe-type-tools/cmap-resources
|
|||||||
|
|
||||||
<link rel="stylesheet" href="viewer.css">
|
<link rel="stylesheet" href="viewer.css">
|
||||||
|
|
||||||
<!-- This snippet is used in production (included from viewer.html) -->
|
<!-- This snippet is used in production (included from viewer.html) -->
|
||||||
<link rel="resource" type="application/l10n" href="locale/locale.properties">
|
<link rel="resource" type="application/l10n" href="locale/locale.properties">
|
||||||
<script src="../build/pdf.js"></script>
|
<script src="../build/pdf.js"></script>
|
||||||
|
|
||||||
<script src="viewer.js"></script>
|
<script src="viewer.js"></script>
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body tabindex="1">
|
<body tabindex="1">
|
||||||
<div id="outerContainer">
|
<div id="outerContainer" style="user-select: none">
|
||||||
|
|
||||||
<div id="sidebarContainer">
|
<div id="sidebarContainer">
|
||||||
<div id="toolbarSidebar">
|
<div id="toolbarSidebar">
|
||||||
<div id="toolbarSidebarLeft">
|
<div id="toolbarSidebarLeft">
|
||||||
<div id="sidebarViewButtons" class="splitToolbarButton toggled" role="radiogroup">
|
<div id="sidebarViewButtons" class="splitToolbarButton toggled" role="radiogroup">
|
||||||
<button id="viewThumbnail" class="toolbarButton toggled" title="Show Thumbnails" tabindex="2" data-l10n-id="thumbs" role="radio" aria-checked="true" aria-controls="thumbnailView">
|
<button id="viewThumbnail"
|
||||||
|
class="toolbarButton toggled"
|
||||||
|
title="Show Thumbnails"
|
||||||
|
tabindex="2"
|
||||||
|
data-l10n-id="thumbs"
|
||||||
|
role="radio"
|
||||||
|
aria-checked="true"
|
||||||
|
aria-controls="thumbnailView">
|
||||||
<span data-l10n-id="thumbs_label">Thumbnails</span>
|
<span data-l10n-id="thumbs_label">Thumbnails</span>
|
||||||
</button>
|
</button>
|
||||||
<button id="viewOutline" class="toolbarButton" title="Show Document Outline (double-click to expand/collapse all items)" tabindex="3" data-l10n-id="document_outline" role="radio" aria-checked="false" aria-controls="outlineView">
|
<button id="viewOutline"
|
||||||
|
class="toolbarButton"
|
||||||
|
title="Show Document Outline (double-click to expand/collapse all items)"
|
||||||
|
tabindex="3"
|
||||||
|
data-l10n-id="document_outline"
|
||||||
|
role="radio"
|
||||||
|
aria-checked="false"
|
||||||
|
aria-controls="outlineView">
|
||||||
<span data-l10n-id="document_outline_label">Document Outline</span>
|
<span data-l10n-id="document_outline_label">Document Outline</span>
|
||||||
</button>
|
</button>
|
||||||
<button id="viewAttachments" class="toolbarButton" title="Show Attachments" tabindex="4" data-l10n-id="attachments" role="radio" aria-checked="false" aria-controls="attachmentsView">
|
<button id="viewAttachments"
|
||||||
|
class="toolbarButton"
|
||||||
|
title="Show Attachments"
|
||||||
|
tabindex="4"
|
||||||
|
data-l10n-id="attachments"
|
||||||
|
role="radio"
|
||||||
|
aria-checked="false"
|
||||||
|
aria-controls="attachmentsView">
|
||||||
<span data-l10n-id="attachments_label">Attachments</span>
|
<span data-l10n-id="attachments_label">Attachments</span>
|
||||||
</button>
|
</button>
|
||||||
<button id="viewLayers" class="toolbarButton" title="Show Layers (double-click to reset all layers to the default state)" tabindex="5" data-l10n-id="layers" role="radio" aria-checked="false" aria-controls="layersView">
|
<button id="viewLayers"
|
||||||
|
class="toolbarButton"
|
||||||
|
title="Show Layers (double-click to reset all layers to the default state)"
|
||||||
|
tabindex="5"
|
||||||
|
data-l10n-id="layers"
|
||||||
|
role="radio"
|
||||||
|
aria-checked="false"
|
||||||
|
aria-controls="layersView">
|
||||||
<span data-l10n-id="layers_label">Layers</span>
|
<span data-l10n-id="layers_label">Layers</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -63,7 +91,12 @@ See https://github.com/adobe-type-tools/cmap-resources
|
|||||||
<div id="outlineOptionsContainer" class="hidden">
|
<div id="outlineOptionsContainer" class="hidden">
|
||||||
<div class="verticalToolbarSeparator"></div>
|
<div class="verticalToolbarSeparator"></div>
|
||||||
|
|
||||||
<button id="currentOutlineItem" class="toolbarButton" disabled="disabled" title="Find Current Outline Item" tabindex="6" data-l10n-id="current_outline_item">
|
<button id="currentOutlineItem"
|
||||||
|
class="toolbarButton"
|
||||||
|
disabled="disabled"
|
||||||
|
title="Find Current Outline Item"
|
||||||
|
tabindex="6"
|
||||||
|
data-l10n-id="current_outline_item">
|
||||||
<span data-l10n-id="current_outline_item_label">Current Outline Item</span>
|
<span data-l10n-id="current_outline_item_label">Current Outline Item</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -85,9 +118,19 @@ See https://github.com/adobe-type-tools/cmap-resources
|
|||||||
<div id="mainContainer">
|
<div id="mainContainer">
|
||||||
<div class="findbar hidden doorHanger" id="findbar">
|
<div class="findbar hidden doorHanger" id="findbar">
|
||||||
<div id="findbarInputContainer">
|
<div id="findbarInputContainer">
|
||||||
<input id="findInput" class="toolbarField" title="Find" placeholder="Find in document…" tabindex="91" data-l10n-id="find_input" aria-invalid="false">
|
<input id="findInput"
|
||||||
|
class="toolbarField"
|
||||||
|
title="Find"
|
||||||
|
placeholder="Find in document…"
|
||||||
|
tabindex="91"
|
||||||
|
data-l10n-id="find_input"
|
||||||
|
aria-invalid="false">
|
||||||
<div class="splitToolbarButton">
|
<div class="splitToolbarButton">
|
||||||
<button id="findPrevious" class="toolbarButton" title="Find the previous occurrence of the phrase" tabindex="92" data-l10n-id="find_previous">
|
<button id="findPrevious"
|
||||||
|
class="toolbarButton"
|
||||||
|
title="Find the previous occurrence of the phrase"
|
||||||
|
tabindex="92"
|
||||||
|
data-l10n-id="find_previous">
|
||||||
<span data-l10n-id="find_previous_label">Previous</span>
|
<span data-l10n-id="find_previous_label">Previous</span>
|
||||||
</button>
|
</button>
|
||||||
<div class="splitToolbarButtonSeparator"></div>
|
<div class="splitToolbarButtonSeparator"></div>
|
||||||
@@ -162,11 +205,20 @@ See https://github.com/adobe-type-tools/cmap-resources
|
|||||||
|
|
||||||
<div class="horizontalToolbarSeparator visibleLargeView"></div>
|
<div class="horizontalToolbarSeparator visibleLargeView"></div>
|
||||||
|
|
||||||
<button id="presentationMode" class="secondaryToolbarButton" title="Switch to Presentation Mode" tabindex="54" data-l10n-id="presentation_mode">
|
<button id="presentationMode"
|
||||||
|
class="secondaryToolbarButton"
|
||||||
|
title="Switch to Presentation Mode"
|
||||||
|
tabindex="54"
|
||||||
|
data-l10n-id="presentation_mode">
|
||||||
<span data-l10n-id="presentation_mode_label">Presentation Mode</span>
|
<span data-l10n-id="presentation_mode_label">Presentation Mode</span>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<a href="#" id="viewBookmark" class="secondaryToolbarButton" title="Current Page (View URL from Current Page)" tabindex="55" data-l10n-id="bookmark1">
|
<a href="#"
|
||||||
|
id="viewBookmark"
|
||||||
|
class="secondaryToolbarButton"
|
||||||
|
title="Current Page (View URL from Current Page)"
|
||||||
|
tabindex="55"
|
||||||
|
data-l10n-id="bookmark1">
|
||||||
<span data-l10n-id="bookmark1_label">Current Page</span>
|
<span data-l10n-id="bookmark1_label">Current Page</span>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
@@ -191,10 +243,22 @@ See https://github.com/adobe-type-tools/cmap-resources
|
|||||||
<div class="horizontalToolbarSeparator"></div>
|
<div class="horizontalToolbarSeparator"></div>
|
||||||
|
|
||||||
<div id="cursorToolButtons" role="radiogroup">
|
<div id="cursorToolButtons" role="radiogroup">
|
||||||
<button id="cursorSelectTool" class="secondaryToolbarButton toggled" title="Enable Text Selection Tool" tabindex="60" data-l10n-id="cursor_text_select_tool" role="radio" aria-checked="true">
|
<button id="cursorSelectTool"
|
||||||
|
class="secondaryToolbarButton toggled"
|
||||||
|
title="Enable Text Selection Tool"
|
||||||
|
tabindex="60"
|
||||||
|
data-l10n-id="cursor_text_select_tool"
|
||||||
|
role="radio"
|
||||||
|
aria-checked="true">
|
||||||
<span data-l10n-id="cursor_text_select_tool_label">Text Selection Tool</span>
|
<span data-l10n-id="cursor_text_select_tool_label">Text Selection Tool</span>
|
||||||
</button>
|
</button>
|
||||||
<button id="cursorHandTool" class="secondaryToolbarButton" title="Enable Hand Tool" tabindex="61" data-l10n-id="cursor_hand_tool" role="radio" aria-checked="false">
|
<button id="cursorHandTool"
|
||||||
|
class="secondaryToolbarButton"
|
||||||
|
title="Enable Hand Tool"
|
||||||
|
tabindex="61"
|
||||||
|
data-l10n-id="cursor_hand_tool"
|
||||||
|
role="radio"
|
||||||
|
aria-checked="false">
|
||||||
<span data-l10n-id="cursor_hand_tool_label">Hand Tool</span>
|
<span data-l10n-id="cursor_hand_tool_label">Hand Tool</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -202,16 +266,40 @@ See https://github.com/adobe-type-tools/cmap-resources
|
|||||||
<div class="horizontalToolbarSeparator"></div>
|
<div class="horizontalToolbarSeparator"></div>
|
||||||
|
|
||||||
<div id="scrollModeButtons" role="radiogroup">
|
<div id="scrollModeButtons" role="radiogroup">
|
||||||
<button id="scrollPage" class="secondaryToolbarButton" title="Use Page Scrolling" tabindex="62" data-l10n-id="scroll_page" role="radio" aria-checked="false">
|
<button id="scrollPage"
|
||||||
|
class="secondaryToolbarButton"
|
||||||
|
title="Use Page Scrolling"
|
||||||
|
tabindex="62"
|
||||||
|
data-l10n-id="scroll_page"
|
||||||
|
role="radio"
|
||||||
|
aria-checked="false">
|
||||||
<span data-l10n-id="scroll_page_label">Page Scrolling</span>
|
<span data-l10n-id="scroll_page_label">Page Scrolling</span>
|
||||||
</button>
|
</button>
|
||||||
<button id="scrollVertical" class="secondaryToolbarButton toggled" title="Use Vertical Scrolling" tabindex="63" data-l10n-id="scroll_vertical" role="radio" aria-checked="true">
|
<button id="scrollVertical"
|
||||||
<span data-l10n-id="scroll_vertical_label" >Vertical Scrolling</span>
|
class="secondaryToolbarButton toggled"
|
||||||
|
title="Use Vertical Scrolling"
|
||||||
|
tabindex="63"
|
||||||
|
data-l10n-id="scroll_vertical"
|
||||||
|
role="radio"
|
||||||
|
aria-checked="true">
|
||||||
|
<span data-l10n-id="scroll_vertical_label">Vertical Scrolling</span>
|
||||||
</button>
|
</button>
|
||||||
<button id="scrollHorizontal" class="secondaryToolbarButton" title="Use Horizontal Scrolling" tabindex="64" data-l10n-id="scroll_horizontal" role="radio" aria-checked="false">
|
<button id="scrollHorizontal"
|
||||||
|
class="secondaryToolbarButton"
|
||||||
|
title="Use Horizontal Scrolling"
|
||||||
|
tabindex="64"
|
||||||
|
data-l10n-id="scroll_horizontal"
|
||||||
|
role="radio"
|
||||||
|
aria-checked="false">
|
||||||
<span data-l10n-id="scroll_horizontal_label">Horizontal Scrolling</span>
|
<span data-l10n-id="scroll_horizontal_label">Horizontal Scrolling</span>
|
||||||
</button>
|
</button>
|
||||||
<button id="scrollWrapped" class="secondaryToolbarButton" title="Use Wrapped Scrolling" tabindex="65" data-l10n-id="scroll_wrapped" role="radio" aria-checked="false">
|
<button id="scrollWrapped"
|
||||||
|
class="secondaryToolbarButton"
|
||||||
|
title="Use Wrapped Scrolling"
|
||||||
|
tabindex="65"
|
||||||
|
data-l10n-id="scroll_wrapped"
|
||||||
|
role="radio"
|
||||||
|
aria-checked="false">
|
||||||
<span data-l10n-id="scroll_wrapped_label">Wrapped Scrolling</span>
|
<span data-l10n-id="scroll_wrapped_label">Wrapped Scrolling</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -219,20 +307,43 @@ See https://github.com/adobe-type-tools/cmap-resources
|
|||||||
<div class="horizontalToolbarSeparator"></div>
|
<div class="horizontalToolbarSeparator"></div>
|
||||||
|
|
||||||
<div id="spreadModeButtons" role="radiogroup">
|
<div id="spreadModeButtons" role="radiogroup">
|
||||||
<button id="spreadNone" class="secondaryToolbarButton toggled" title="Do not join page spreads" tabindex="66" data-l10n-id="spread_none" role="radio" aria-checked="true">
|
<button id="spreadNone"
|
||||||
|
class="secondaryToolbarButton toggled"
|
||||||
|
title="Do not join page spreads"
|
||||||
|
tabindex="66"
|
||||||
|
data-l10n-id="spread_none"
|
||||||
|
role="radio"
|
||||||
|
aria-checked="true">
|
||||||
<span data-l10n-id="spread_none_label">No Spreads</span>
|
<span data-l10n-id="spread_none_label">No Spreads</span>
|
||||||
</button>
|
</button>
|
||||||
<button id="spreadOdd" class="secondaryToolbarButton" title="Join page spreads starting with odd-numbered pages" tabindex="67" data-l10n-id="spread_odd" role="radio" aria-checked="false">
|
<button id="spreadOdd"
|
||||||
|
class="secondaryToolbarButton"
|
||||||
|
title="Join page spreads starting with odd-numbered pages"
|
||||||
|
tabindex="67"
|
||||||
|
data-l10n-id="spread_odd"
|
||||||
|
role="radio"
|
||||||
|
aria-checked="false">
|
||||||
<span data-l10n-id="spread_odd_label">Odd Spreads</span>
|
<span data-l10n-id="spread_odd_label">Odd Spreads</span>
|
||||||
</button>
|
</button>
|
||||||
<button id="spreadEven" class="secondaryToolbarButton" title="Join page spreads starting with even-numbered pages" tabindex="68" data-l10n-id="spread_even" role="radio" aria-checked="false">
|
<button id="spreadEven"
|
||||||
|
class="secondaryToolbarButton"
|
||||||
|
title="Join page spreads starting with even-numbered pages"
|
||||||
|
tabindex="68"
|
||||||
|
data-l10n-id="spread_even"
|
||||||
|
role="radio"
|
||||||
|
aria-checked="false">
|
||||||
<span data-l10n-id="spread_even_label">Even Spreads</span>
|
<span data-l10n-id="spread_even_label">Even Spreads</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="horizontalToolbarSeparator"></div>
|
<div class="horizontalToolbarSeparator"></div>
|
||||||
|
|
||||||
<button id="documentProperties" class="secondaryToolbarButton" title="Document Properties…" tabindex="69" data-l10n-id="document_properties" aria-controls="documentPropertiesDialog">
|
<button id="documentProperties"
|
||||||
|
class="secondaryToolbarButton"
|
||||||
|
title="Document Properties…"
|
||||||
|
tabindex="69"
|
||||||
|
data-l10n-id="document_properties"
|
||||||
|
aria-controls="documentPropertiesDialog">
|
||||||
<span data-l10n-id="document_properties_label">Document Properties…</span>
|
<span data-l10n-id="document_properties_label">Document Properties…</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -242,11 +353,23 @@ See https://github.com/adobe-type-tools/cmap-resources
|
|||||||
<div id="toolbarContainer">
|
<div id="toolbarContainer">
|
||||||
<div id="toolbarViewer">
|
<div id="toolbarViewer">
|
||||||
<div id="toolbarViewerLeft">
|
<div id="toolbarViewerLeft">
|
||||||
<button id="sidebarToggle" class="toolbarButton" title="Toggle Sidebar" tabindex="11" data-l10n-id="toggle_sidebar" aria-expanded="false" aria-controls="sidebarContainer">
|
<button id="sidebarToggle"
|
||||||
|
class="toolbarButton"
|
||||||
|
title="Toggle Sidebar"
|
||||||
|
tabindex="11"
|
||||||
|
data-l10n-id="toggle_sidebar"
|
||||||
|
aria-expanded="false"
|
||||||
|
aria-controls="sidebarContainer">
|
||||||
<span data-l10n-id="toggle_sidebar_label">Toggle Sidebar</span>
|
<span data-l10n-id="toggle_sidebar_label">Toggle Sidebar</span>
|
||||||
</button>
|
</button>
|
||||||
<div class="toolbarButtonSpacer"></div>
|
<div class="toolbarButtonSpacer"></div>
|
||||||
<button id="viewFind" class="toolbarButton" title="Find in Document" tabindex="12" data-l10n-id="findbar" aria-expanded="false" aria-controls="findbar">
|
<button id="viewFind"
|
||||||
|
class="toolbarButton"
|
||||||
|
title="Find in Document"
|
||||||
|
tabindex="12"
|
||||||
|
data-l10n-id="findbar"
|
||||||
|
aria-expanded="false"
|
||||||
|
aria-controls="findbar">
|
||||||
<span data-l10n-id="findbar_label">Find</span>
|
<span data-l10n-id="findbar_label">Find</span>
|
||||||
</button>
|
</button>
|
||||||
<div class="splitToolbarButton hiddenSmallView">
|
<div class="splitToolbarButton hiddenSmallView">
|
||||||
@@ -258,7 +381,15 @@ See https://github.com/adobe-type-tools/cmap-resources
|
|||||||
<span data-l10n-id="next_label">Next</span>
|
<span data-l10n-id="next_label">Next</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<input type="number" id="pageNumber" class="toolbarField" title="Page" value="1" min="1" tabindex="15" data-l10n-id="page" autocomplete="off">
|
<input type="number"
|
||||||
|
id="pageNumber"
|
||||||
|
class="toolbarField"
|
||||||
|
title="Page"
|
||||||
|
value="1"
|
||||||
|
min="1"
|
||||||
|
tabindex="15"
|
||||||
|
data-l10n-id="page"
|
||||||
|
autocomplete="off">
|
||||||
<span id="numPages" class="toolbarLabel"></span>
|
<span id="numPages" class="toolbarLabel"></span>
|
||||||
</div>
|
</div>
|
||||||
<div id="toolbarViewerRight">
|
<div id="toolbarViewerRight">
|
||||||
@@ -277,17 +408,37 @@ See https://github.com/adobe-type-tools/cmap-resources
|
|||||||
<div class="verticalToolbarSeparator hiddenMediumView hidden-dom"></div>
|
<div class="verticalToolbarSeparator hiddenMediumView hidden-dom"></div>
|
||||||
|
|
||||||
<div id="editorModeButtons" class="splitToolbarButton toggled" role="radiogroup">
|
<div id="editorModeButtons" class="splitToolbarButton toggled" role="radiogroup">
|
||||||
<button id="editorFreeText" class="toolbarButton hidden-dom" disabled="disabled" title="Text" role="radio" aria-checked="false" tabindex="34" data-l10n-id="editor_free_text2">
|
<button id="editorFreeText"
|
||||||
|
class="toolbarButton hidden-dom"
|
||||||
|
disabled="disabled"
|
||||||
|
title="Text"
|
||||||
|
role="radio"
|
||||||
|
aria-checked="false"
|
||||||
|
tabindex="34"
|
||||||
|
data-l10n-id="editor_free_text2">
|
||||||
<span data-l10n-id="editor_free_text2_label">Text</span>
|
<span data-l10n-id="editor_free_text2_label">Text</span>
|
||||||
</button>
|
</button>
|
||||||
<button id="editorInk" class="toolbarButton hidden-dom" disabled="disabled" title="Draw" role="radio" aria-checked="false" tabindex="35" data-l10n-id="editor_ink2">
|
<button id="editorInk"
|
||||||
|
class="toolbarButton hidden-dom"
|
||||||
|
disabled="disabled"
|
||||||
|
title="Draw"
|
||||||
|
role="radio"
|
||||||
|
aria-checked="false"
|
||||||
|
tabindex="35"
|
||||||
|
data-l10n-id="editor_ink2">
|
||||||
<span data-l10n-id="editor_ink2_label">Draw</span>
|
<span data-l10n-id="editor_ink2_label">Draw</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id="editorModeSeparator" class="verticalToolbarSeparator"></div>
|
<div id="editorModeSeparator" class="verticalToolbarSeparator"></div>
|
||||||
|
|
||||||
<button id="secondaryToolbarToggle" class="toolbarButton" title="Tools" tabindex="48" data-l10n-id="tools" aria-expanded="false" aria-controls="secondaryToolbar">
|
<button id="secondaryToolbarToggle"
|
||||||
|
class="toolbarButton"
|
||||||
|
title="Tools"
|
||||||
|
tabindex="48"
|
||||||
|
data-l10n-id="tools"
|
||||||
|
aria-expanded="false"
|
||||||
|
aria-controls="secondaryToolbar">
|
||||||
<span data-l10n-id="tools_label">Tools</span>
|
<span data-l10n-id="tools_label">Tools</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
@@ -425,9 +576,9 @@ See https://github.com/adobe-type-tools/cmap-resources
|
|||||||
</dialog>
|
</dialog>
|
||||||
</div> <!-- dialogContainer -->
|
</div> <!-- dialogContainer -->
|
||||||
|
|
||||||
</div> <!-- outerContainer -->
|
</div> <!-- outerContainer -->
|
||||||
<div id="printContainer"></div>
|
<div id="printContainer"></div>
|
||||||
|
|
||||||
<input type="file" id="fileInput" class="hidden">
|
<input type="file" id="fileInput" class="hidden">
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
Reference in New Issue
Block a user