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

已加载jQuery时使用google.load导致网站完全失效的问题求助

解决google.load导致页面内容消失的问题

嘿,这个问题我之前踩过一模一样的坑!核心原因是google.load的默认行为会触发document.write来插入脚本,而当你在DOM就绪回调(也就是$(function(){}))里调用它时,此时页面已经渲染完成,document.write会直接清空整个页面的内容——这就是为啥你一启用那行代码,所有内容都没了,而且控制台还没报错(因为这是它的“默认行为”,不是错误)。

给你几个靠谱的解决方案:

方案1:给google.load添加nocommit参数

这是最直接的修复方式,通过设置nocommit: true阻止它自动执行document.write,同时用回调函数处理API加载完成后的逻辑:

$(function() {
  google.load('language', '1', {
    // 关键:禁止自动提交/写入页面
    nocommit: true,
    // API加载完成后的回调
    callback: function() {
      // 在这里编写语言API的业务逻辑
      console.log('Google Language API 加载完成');
    }
  });
});

原理:nocommit: true会让google.load只加载脚本资源,而不自动把脚本插入到页面中,避免了触发document.write清空页面的问题。

方案2:绕过google.load,直接加载API脚本

如果方案1还是有问题,或者你想彻底避开google.load的坑,可以直接通过script标签加载语言API,完全绕开google.load:

<!-- 直接加载Google语言API,指定回调函数 -->
<script src="https://www.google.com/jsapi?callback=initLanguageAPI" async defer></script>

<script>
// API加载完成后的初始化函数
function initLanguageAPI() {
  // 初始化语言API
  google.language.init();
  // 这里写你的业务逻辑
}

// 正常处理jQuery的DOM就绪逻辑
$(function() {
  // 这里放依赖jQuery的代码,和API逻辑互不干扰
});
</script>

这种方式更稳定,因为完全避开了google.load的内部坑,同时async/defer还能避免脚本加载阻塞页面渲染。

额外提醒

顺便提一句:Google的旧JSAPI(也就是google.load依赖的那个)已经被官方标记为废弃状态了,如果是新项目,更推荐使用Google Cloud Translation API的现代加载方式,不过如果是维护旧项目,上面的两个方案完全能解决你的问题。

内容的提问来源于stack exchange,提问作者Patrik Krehák

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:45:21