【发布时间】:2018-11-05 18:26:08
【问题描述】:
我正在尝试制作一对在打开 PDF 时显示的对话框;一个对话框将显示 PDF 是否在支持 Adobe Reader 级别的 JavaScript 功能的阅读器中打开,另一个将显示前一个对话框是否未显示(即,如果 PDF 在几乎不支持 JavaScript 的阅读器中打开,则表示第一个对话框无法显示)。
我现在遇到的问题是试图显示第二个对话框。我尝试使用 try-catch,但我假设它不起作用,因为第一个对话框实际上并没有显示...或其他什么。
如果由于缺乏支持而没有显示第一个对话框,我将如何显示第二个对话框?
这是我当前的代码(在页面属性中写为“页面打开”操作):
try {
var d = dialog();
d.execDialog();
} catch (e) {
app.alert("ERROR: Incompatible reader; please install Adobe Reader to open this file.");
}
function dialog()
{
var dialogDescriptor =
{
// Dialog description goes here
};
var dialogObject =
{
execDialog: function() { return app.execDialog(dialogDescriptor); },
};
return dialogObject;
}
我之所以使用 app.execDialog 是因为第一个对话框中会有超链接。
另外,我对使用 JavaScript 和处理 PDF 完全陌生,所以如果这是一个愚蠢的问题,我深表歉意。
【问题讨论】:
-
如果您尝试同时显示两个对话框,Acrobat 和 Reader 会经常崩溃。您应该首先确定两个对话框中的哪一个适合显示,然后再显示那个。
-
不过,我并不想同时显示两个对话框。如果另一个由于缺乏 javascript 支持而无法显示,我正在尝试显示;即,如果 execDialog 函数由于缺少功能而失败,例如在 Foxit 等非 adobe 阅读器中,我希望出现 app.alert 框。
-
对不起 - 我误解了。请看我的回答。
标签: javascript pdf dialog acrobat adobe-reader