在WordPress的wp_footer动作中如何在script标签内使用JavaScript变量
代码修复说明
你当前的代码存在两处需要调整的逻辑:
document.querySelector('meta[property~="og:type"]')获取到的是meta标签的DOM元素对象,并不是标签对应的content内容,需要额外取元素的content属性才能拿到你需要的og:type值- 缺少空值兼容逻辑,如果页面没有对应meta标签,直接取属性会抛出JS异常
修正后可用代码
add_action('wp_footer', 'mather_script'); function mather_script(){ echo " <script> var typeEl = document.querySelector('meta[property=\"og:type\"]'); var type = typeEl ? typeEl.content : 'unknown'; window.dataLayer = window.dataLayer || []; dataLayer.push({ pageType: type }); </script>"; }
如果你的页面不需要兼容IE等老旧浏览器,也可以用可选链语法简化取值逻辑:var type = document.querySelector('meta[property=\"og:type\"]')?.content || 'unknown';
修改后即可正确将og:type的实际内容赋值给pageType字段推入dataLayer。
内容的提问来源于stack exchange,提问作者rpeleltierrefocus
相关产品推荐
相关产品推荐

