AMP自定义脚本传递PHP动态值遇哈希问题,求解决方案
问题:AMP页面动态传递post_id导致脚本哈希频繁变更的解决方案
背景与现有实现
我需要给网站的AMP版本页面添加分析API脚本,原本通过PHP将动态$post_id传入自定义AMP脚本,代码如下:
// api_call_component.php <amp-script script="page_view"> <div style="height: 5px"></div> </amp-script> <script id="page_view" type="text/plain" target="amp-script"> function page_view(type, id) { let formData = `page_type=${type}&id=${id}` fetch("my_url/api/add_page_view", { method: "POST", headers: {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}, body: formData }) } page_view('post', <?php echo $post_id ?>) // 该行随post_id动态变化 </script>
核心问题
上述代码功能正常,但每次$post_id变更时,AMP都会要求生成新的脚本哈希——因为脚本内容随post_id动态改变,这带来了不必要的维护成本,因此需要将脚本改为非动态实现。
已尝试的无效方案
- 尝试从URL中提取post_id,但AMP页面会生成新的URL,此方法无法获取到正确的id。
- 尝试通过WorkerDOM相关方法(如
Document.URL、URL.href)获取页面URL,但返回值为undefined。
求助方向
目前考虑通过DOM元素读取post_id,但想了解是否存在更简洁、符合AMP规范的解决方案?
内容的提问来源于stack exchange,提问作者MrFacundo
相关产品推荐
相关产品推荐

