You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP脚本出现Uncaught TypeError: Cannot read property 'parentNode' of undefined错误

解决Uncaught TypeError: Cannot read property 'parentNode' of undefined错误

这个错误的核心原因是你的JavaScript代码里存在语法错误,导致fjs变量变成了undefined,自然无法读取它的parentNode属性。我来帮你一步步修正:

问题代码里的错误点

  • d.getElementsByTagName[0]:getElementsByTagName是DOM方法,必须用括号调用,而且要传入目标标签名(这里是script),否则无法获取正确的元素集合。原代码没加括号也没传参数,导致fjs为undefined。
  • js = d.createElement;:同样,createElement也是方法,需要传入要创建的标签名(script)才能生成正确的元素节点。

修正后的完整代码

(function(d, s, id) {
    var js, fjs = d.getElementsByTagName('script')[0];
    if (d.getElementById(id)) return;
    js = d.createElement('script');
    js.id = id;
    js.src = "https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.6";
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

额外的兼容性处理(可选)

如果你的页面可能不存在任何script标签(这种情况很少见,但可以提前预防),可以添加 fallback 逻辑,确保有合法的父节点来插入脚本:

(function(d, s, id) {
    var js, fjs = d.getElementsByTagName('script')[0];
    if (d.getElementById(id)) return;
    js = d.createElement('script');
    js.id = id;
    js.src = "https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.6";
    // 如果没有找到script标签,就插入到head或者body里
    var insertTarget = fjs ? fjs.parentNode : d.head || d.body;
    insertTarget.insertBefore(js, fjs || null);
}(document, 'script', 'facebook-jssdk'));

这样修改后,代码就能正确获取到父节点并插入Facebook SDK脚本,不会再出现那个类型错误了。

内容的提问来源于stack exchange,提问作者Athira Devi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:19:17