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

如何在Google Forms中基于登录信息动态设置不可编辑文本?

解决Google Form动态设置只读个性化文本的方案

方法一:通过Google Apps Script构建自定义个性化表单页面

这是最稳定的方案,直接基于用户登录信息生成带只读内容的表单入口:

  • 打开目标Google Form,点击右上角「扩展程序」→「Apps Script」,进入脚本编辑器
  • 编写后端脚本获取登录用户信息并渲染自定义页面:
    function doGet(e) {
      // 获取当前登录用户的信息(需用户授权)
      const activeUser = Session.getActiveUser();
      const userDisplayName = activeUser.getDisplayName();
      const userEmail = activeUser.getEmail();
      
      // 加载HTML模板并传入用户数据
      const formTemplate = HtmlService.createTemplateFromFile('CustomFormPage');
      formTemplate.userName = userDisplayName;
      formTemplate.userEmail = userEmail;
      formTemplate.formEmbedUrl = '替换为你的Google Form嵌入URL'; // 可在Form的「发送」→「嵌入」获取
      
      return formTemplate.evaluate().setTitle('个性化表单');
    }
    
  • 在脚本编辑器中创建HTML文件(命名为CustomFormPage.html):
    <!DOCTYPE html>
    <html>
      <body style="padding:20px;">
        <div style="margin-bottom:20px;">
          <h3>欢迎,*<?= userName ?>*</h3>
          <p>当前登录账号:<span style="font-weight:600; color:#2b6cb0;"><?= userEmail ?></span></p>
          <p style="color:#6b7280;">以上信息为登录自动获取,不可编辑</p>
        </div>
        <!-- 嵌入原Google Form -->
        <iframe src="<?= formEmbedUrl ?>" width="100%" height="800" frameborder="0" marginheight="0" marginwidth="0">表单加载中...</iframe>
      </body>
    </html>
    
  • 部署为Web应用:点击「部署」→「新部署」,选择「Web应用」,设置执行权限为「用户访问Web应用时」,访问权限设为「仅限已登录的Google用户」,部署后得到的URL就是用户登录后访问的入口

方法二:预填充字段配合前端脚本禁用编辑(简易但稳定性有限)

如果不想重构界面,可通过预填充链接加前端脚本锁定指定字段:

  • 先通过Google Form的「获取预填充链接」生成带用户信息的链接
  • 创建一个包含该预填充Form的HTML页面,添加脚本禁用编辑:
    <iframe id="targetForm" src="替换为你的预填充Form链接" width="100%" height="800" frameborder="0"></iframe>
    <script>
      const formIframe = document.getElementById('targetForm');
      formIframe.onload = () => {
        // 根据表单字段的aria-label定位目标输入框,需自行调整选择器
        const readonlyInput = formIframe.contentDocument.querySelector('input[aria-label="用户姓名"]');
        if (readonlyInput) {
          readonlyInput.disabled = true;
          readonlyInput.style.background = '#f3f4f6';
        }
      };
    </script>
    
    注意:该方法依赖Google Form的前端DOM结构,若官方更新界面,选择器可能失效

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 15:52:46