fix: 译文iframe内嵌 + 无译文时弹提示
This commit is contained in:
@@ -157,8 +157,7 @@ function renderPaper(p) {
|
|||||||
// Show translation button for ALL papers with arxiv or pdf
|
// Show translation button for ALL papers with arxiv or pdf
|
||||||
const paperId = p.arxiv || (p.pdf ? p.pdf.split('/').pop().replace('.pdf','') : null);
|
const paperId = p.arxiv || (p.pdf ? p.pdf.split('/').pop().replace('.pdf','') : null);
|
||||||
if (paperId) {
|
if (paperId) {
|
||||||
const transUrl = `/papers/translated/${paperId}.pdf`;
|
links.push('<button class="paper-link trans-btn" data-pdf="/papers/translated/' + paperId + '.pdf" data-title="' + p.title + ' [译文]" onclick="openTrans(this)">📖 译文</button>');
|
||||||
links.push(`<button class="paper-link trans-btn" data-pdf="${encodeURIComponent(transUrl)}" data-title="${encodeURIComponent(p.title + ' [中文译文]')}" onclick="openPdfBtn(this)">📖 译文</button>`);
|
|
||||||
}
|
}
|
||||||
return `<div class="paper-item"><div class="paper-year">${p.year||'—'}</div><div class="paper-body" id="${id}">
|
return `<div class="paper-item"><div class="paper-year">${p.year||'—'}</div><div class="paper-body" id="${id}">
|
||||||
<div class="paper-title">${p.title}</div>
|
<div class="paper-title">${p.title}</div>
|
||||||
@@ -175,6 +174,15 @@ function getPdfLink(p) {
|
|||||||
|
|
||||||
function openPdfBtn(btn) { openPdf(btn.dataset.pdf, btn.dataset.title); }
|
function openPdfBtn(btn) { openPdf(btn.dataset.pdf, btn.dataset.title); }
|
||||||
|
|
||||||
|
async function openTrans(btn) {
|
||||||
|
const url = btn.dataset.pdf;
|
||||||
|
try {
|
||||||
|
const resp = await fetch(url, { method: 'HEAD' });
|
||||||
|
if (resp.ok) { openPdf(url, btn.dataset.title); return; }
|
||||||
|
} catch(e) {}
|
||||||
|
alert('该论文译文尚未生成,请稍后再试');
|
||||||
|
}
|
||||||
|
|
||||||
// ═══════════════ PDF VIEWER (状态条驱动) ═══════════════
|
// ═══════════════ PDF VIEWER (状态条驱动) ═══════════════
|
||||||
function getLocalPdfUrl(extUrl) {
|
function getLocalPdfUrl(extUrl) {
|
||||||
const am = extUrl.match(/arxiv\.org\/pdf\/(\d+\.\d+)/);
|
const am = extUrl.match(/arxiv\.org\/pdf\/(\d+\.\d+)/);
|
||||||
|
|||||||
@@ -190,8 +190,7 @@ function renderPaper(p) {
|
|||||||
// Show translation button for ALL papers with arxiv or pdf
|
// Show translation button for ALL papers with arxiv or pdf
|
||||||
const paperId = p.arxiv || (p.pdf ? p.pdf.split('/').pop().replace('.pdf','') : null);
|
const paperId = p.arxiv || (p.pdf ? p.pdf.split('/').pop().replace('.pdf','') : null);
|
||||||
if (paperId) {
|
if (paperId) {
|
||||||
const transUrl = `/papers/translated/${paperId}.pdf`;
|
links.push('<button class="paper-link trans-btn" data-pdf="/papers/translated/' + paperId + '.pdf" data-title="' + p.title + ' [译文]" onclick="openTrans(this)">📖 译文</button>');
|
||||||
links.push(`<button class="paper-link trans-btn" data-pdf="${encodeURIComponent(transUrl)}" data-title="${encodeURIComponent(p.title + ' [中文译文]')}" onclick="openPdfBtn(this)">📖 译文</button>`);
|
|
||||||
}
|
}
|
||||||
return `<div class="paper-item"><div class="paper-year">${p.year||'—'}</div><div class="paper-body" id="${id}">
|
return `<div class="paper-item"><div class="paper-year">${p.year||'—'}</div><div class="paper-body" id="${id}">
|
||||||
<div class="paper-title">${p.title}</div>
|
<div class="paper-title">${p.title}</div>
|
||||||
@@ -208,6 +207,15 @@ function getPdfLink(p) {
|
|||||||
|
|
||||||
function openPdfBtn(btn) { openPdf(btn.dataset.pdf, btn.dataset.title); }
|
function openPdfBtn(btn) { openPdf(btn.dataset.pdf, btn.dataset.title); }
|
||||||
|
|
||||||
|
async function openTrans(btn) {
|
||||||
|
const url = btn.dataset.pdf;
|
||||||
|
try {
|
||||||
|
const resp = await fetch(url, { method: 'HEAD' });
|
||||||
|
if (resp.ok) { openPdf(url, btn.dataset.title); return; }
|
||||||
|
} catch(e) {}
|
||||||
|
alert('该论文译文尚未生成,请稍后再试');
|
||||||
|
}
|
||||||
|
|
||||||
// ═══════════════ PDF VIEWER (状态条驱动) ═══════════════
|
// ═══════════════ PDF VIEWER (状态条驱动) ═══════════════
|
||||||
function getLocalPdfUrl(extUrl) {
|
function getLocalPdfUrl(extUrl) {
|
||||||
const am = extUrl.match(/arxiv\.org\/pdf\/(\d+\.\d+)/);
|
const am = extUrl.match(/arxiv\.org\/pdf\/(\d+\.\d+)/);
|
||||||
|
|||||||
Reference in New Issue
Block a user