為不支援 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 檢視器中呈現的醜陋的紅色框(包括禁用它的 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,日期的位置將只顯示空白(幾乎只剩下幾個斜杠)。

相關內容