Javascript 无法在Pdf中获取本地存储变量

Javascript 无法在Pdf中获取本地存储变量,javascript,ruby-on-rails,wicked-pdf,Javascript,Ruby On Rails,Wicked Pdf,我在java脚本本地存储中存储了一些数据“xyz”。现在我正试图访问邪恶的pdf,但无法这样做。当我显示为html,但不在pdf中打印时,它可以工作 这就是我所保存的: localStorage.setItem("my_id", "xyz"); 在file.pdf.erb中: <script type="text/javascript"> setTimeout((function () { //console.log(localStorage.getItem("dash

我在java脚本本地存储中存储了一些数据“xyz”。现在我正试图访问邪恶的pdf,但无法这样做。当我显示为html,但不在pdf中打印时,它可以工作

这就是我所保存的:

localStorage.setItem("my_id", "xyz");
在file.pdf.erb中:

<script type="text/javascript">
  setTimeout((function () {
    //console.log(localStorage.getItem("dashboard_bar_chart_actual_situation_control"));
    document.getElementById("p1").innerHTML = "HELLo "+localStorage.getItem("my_id");
    window.status = "FLAG_FOR_PDF";
}), 1000);
</script>

setTimeout((函数(){
//log(localStorage.getItem(“仪表板、条形图、实际情况、控制”);
document.getElementById(“p1”).innerHTML=“HELLo”+localStorage.getItem(“my_id”);
window.status=“FLAG\u FOR\u PDF”;
}), 1000);

您是在呈现为PDF的同一页上设置localStorage值,还是在上一页上设置它,然后期望在PDF页上检索它

后者在默认的PDF呈现模式下不起作用,因为您的HTML保存到磁盘上的文件中,并在虚拟浏览器中打开,没有其他页面上发生的任何上下文(本地存储、cookie)(除非您将它们作为选项提供给
wkhtmltopdf
,至少对于cookie是这样)

您可以在渲染期间显式设置它,使其变得可用,如下所示:

<script>
  // Render it to the page, so it is executed when the JS runs:
  localStorage.setItem("my_id", "<%= "xyz" %>")

  // Use it:
  document.getElementById("p1").innerHTML = "HELLo "+localStorage.getItem("my_id");
</script>

//将其呈现到页面,以便在JS运行时执行:
setItem(“my_id”和“”)
//使用它:
document.getElementById(“p1”).innerHTML=“HELLo”+localStorage.getItem(“my_id”);
或者,您可以使用WickedPDF中间件,它尝试用PDF版本替换您看到的HTML,而不将其保存到磁盘上的临时HTML文件中,但这也可能无法正常工作,具体取决于JS代码的执行方式