Skip to content

Commit ef3d033

Browse files
committed
refactor: 更新脚本逻辑
1 parent 80b5e77 commit ef3d033

2 files changed

Lines changed: 16 additions & 22 deletions

File tree

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
@namespace BootstrapBlazor.Components
22
@inherits BootstrapModuleComponentBase
3-
@attribute [JSModuleAutoLoader("./_content/BootstrapBlazor.PdfViewer/PdfViewer.razor.js", JSObjectReference = true)]
3+
@attribute [JSModuleAutoLoader("./_content/BootstrapBlazor.PdfViewer/PdfViewer.razor.js", JSObjectReference = true, AutoInvokeDispose = false)]
44

55
<div @attributes="AdditionalAttributes" id="@Id" data-bb-url="@Url" class="@ClassString" style="@StyleString"></div>
Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,34 @@
1-
import { addLink, addScript } from "../BootstrapBlazor/modules/utility.js"
1+
import { addLink } from "../BootstrapBlazor/modules/utility.js"
22
import Data from "../BootstrapBlazor/modules/data.js"
33

44
export async function init(id) {
55
await addLink("./_content/BootstrapBlazor.PdfViewer/pdf-viewer.css");
66

77
const el = document.getElementById(id);
8-
const url = el.getAttribute('data-bb-url');
98
const pdfViewer = { el };
10-
11-
createFrame(pdfViewer, url);
129
Data.set(id, pdfViewer);
1310

14-
console.log(pdfViewer);
11+
const url = el.getAttribute('data-bb-url');
12+
loadPdf(id, url);
1513
}
1614

1715
export function loadPdf(id, url) {
1816
const pdfViewer = Data.get(id);
19-
const { frame } = pdfViewer;
20-
if (frame) {
21-
frame.src = url;
22-
}
23-
else {
24-
createFrame(pdfViewer, url);
25-
}
26-
}
27-
28-
const createFrame = (pdfViewer, url) => {
2917
const { el } = pdfViewer;
3018
if (url) {
31-
const frame = document.createElement('iframe');
32-
frame.src = url;
33-
frame.classList.add('bb-pdf-viewer');
34-
el.appendChild(frame);
35-
pdfViewer.frame = frame;
19+
const { frame } = pdfViewer;
20+
const viewer = frame || createFrame(el);
21+
viewer.src = url;
22+
}
23+
else {
24+
delete pdfViewer.frame;
25+
el.innerHTML = '';
3626
}
3727
}
3828

39-
export function dispose(id) {
29+
const createFrame = el => {
30+
const frame = document.createElement('iframe');
31+
frame.classList.add('bb-pdf-viewer');
32+
el.appendChild(frame);
33+
return frame;
4034
}

0 commit comments

Comments
 (0)