对于不支持 Javascript 的查看器,Javascript(表单)框的替代文本是什么?

对于不支持 Javascript 的查看器,Javascript(表单)框的替代文本是什么?

我正在使用该tdclock包显示当前日期和时间。它在 Acrobat 中看起来不错,但在其他查看器(如 Evince)中看起来很糟糕,因为它们不支持 Javascript,而是显示一个红色框(见下文)。

\documentclass{article}
\usepackage{tdclock}
\begin{document}
\initclock

Date: \tddate

\end{document}

是否有办法根据是否使用 Acrobat 查看文档有条件地使用一种渲染或另一种渲染。或者更具体地说,如果支持 Javascript,则使用一种渲染,如果不支持,则使用另一种渲染?

类似这样的事情可能吗?

\documentclass{article}
\usepackage{tdclock}
\begin{document}
\initclock
% not real code:
\ifJavascriptSupported{\tddate}{\today} % should show dynamic date in Acrobat, and static data in Evince
\ifJavescriptSupported{\tdchorno}{}

\end{document}

解释这个问题的另一种方式是,如果查看器不支持某项功能(如media9支持),则允许使用替代文本。(如果没有其他选择,甚至根本没有文本也比红色框要好。)

以下是 Acrobat 和 Evince 与当前代码的比较:

杂技演员(数字由 Javascript 排版,没有 TeX):

读物

表明(丑陋的红色方框):

表明

阅读器不支持 JS 的预期结果(Evince中显示的静态数据,类似于\today

表明目标

答案1

这是问题的部分解决方案,至少消除了在没有 Javascript 支持的 PDF 查看器(包括禁用 Javascript 的 Acrobat)中呈现的丑陋的红框。

偶然间我发现了一个隐藏的选项hyperref偶然间我发现了这里https://tex.stackexchange.com/a/79979/1871Fld@bordercolor

\documentclass{article}
\usepackage{tdclock}

\makeatletter
\def\Fld@bordercolor{1 1 1} % set TextField border to white, there is also Fld@bcolor
\makeatother

\begin{document}
\initclock

Date: \tddate

\end{document}

如果禁用 Javascript,日期位置将只显示空白(几乎只剩下几个斜线)。

相关内容