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

Google Input Tools无法在Google Apps Script HTML页面输入天城文的问题

解决Google Apps Script HTML页面无法接收Google Input Tools输入的问题

可能的原因

  • Google Apps Script的HTML页面运行在受限制的iframe沙箱环境中,Chrome扩展的输入注入逻辑可能被沙箱策略拦截。
  • Apps Script默认的内容安全策略(CSP)限制了外部扩展的脚本注入行为,导致Google Input Tools无法正常工作。

解决方案

1. 调整内容安全策略(CSP)

在HTML文件的<head>中添加自定义CSP配置,允许Google Input Tools所需的脚本源:

<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline' https://www.google.com; style-src 'self' 'unsafe-inline';">

注:unsafe-inline会降低一定安全性,但这是让Google Input Tools正常注入输入逻辑的必要设置。

2. 手动绑定输入事件监听

为输入框添加显式的input事件监听,确保输入内容能被正确捕获:

document.getElementById('devanagari-input').addEventListener('input', function(e) {
  this.value = e.target.value;
});

这种方式可以绕过扩展可能被拦截的事件注入,直接同步输入值。

3. 修改沙箱模式

在Apps Script的服务端代码中,将HTML输出的沙箱模式设置为NATIVE,减少环境限制:

function doGet() {
  return HtmlService.createHtmlOutputFromFile('index')
    .setSandboxMode(HtmlService.SandboxMode.NATIVE);
}

NATIVE模式会放宽沙箱限制,允许更多外部扩展与页面交互。

4. 替换为contenteditable容器

如果普通<input>元素仍有问题,尝试使用contenteditable属性的<div>替代:

<div id="devanagari-input" contenteditable="true"></div>

通过JavaScript获取输入内容:

const inputContent = document.getElementById('devanagari-input').innerText;

这种方式可以避开input元素的特殊拦截机制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 04:19:59