能否将text/php脚本中的值传递至jQuery?(DOMPDF场景)
关于DOMPDF中PHP脚本变量传递至JavaScript的解决方案
嘿,直接像你那样写是行不通的哦,核心原因是这两类脚本的执行环境和时机完全不搭:
type="text/php"的脚本是DOMPDF在服务器端生成PDF时运行的PHP代码,属于后端执行上下文;text/javascript脚本要么是浏览器加载原始HTML时执行,要么是PDF阅读器打开生成后的PDF时执行,属于前端/阅读器上下文;
这俩上下文完全隔离,没法直接共享变量。
下面给你两个靠谱的解决办法:
方案1:直接用PHP渲染内容(最简单推荐)
既然你的目标是让.tess div显示文本,完全不需要绕JS,直接在服务器端用PHP把变量输出到HTML元素里就行,DOMPDF生成PDF时会直接渲染出文本:
<script type="text/php"> $myText = 'This is My text'; </script> <div class="tess"><?php echo $myText; ?></div>
方案2:将PHP变量注入到JavaScript中
如果确实需要用JavaScript来处理内容,可以利用PHP的服务器端执行特性,把变量直接输出到JS代码里(相当于提前把PHP的值“硬编码”到JS里):
<script type="text/php"> $myText = 'This is My text'; </script> <script type="text/javascript"> // 用json_encode处理特殊字符,避免JS语法错误 const myText = <?php echo json_encode($myText); ?>; $('.tess').text(myText); </script> <div class="tess"></div>
补充说明
你提到的参考问题(获取DOMPDF总页数)里的text/php脚本,主要是用来在PDF渲染阶段操作PDF文档本身(比如添加页码、页眉),这类脚本的变量只存在于DOMPDF的PHP执行环境中,没法直接传递给前端JS。如果要实现动态内容,优先用服务器端直接渲染的方式更稳妥。
内容的提问来源于stack exchange,提问作者AdityaDees
相关产品推荐
相关产品推荐

