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

如何在新版Google Sites网页的Javascript中读取Google Drive文件

可行解决方案

方法1:修改Google Drive链接为直接访问格式

Google Drive默认的view链接无法被JavaScript直接读取内容,你需要将链接替换为原始内容/直接下载链接,格式为:
https://drive.google.com/uc?export=download&id=你的文件ID

你的文件ID是18tCKlaTfgzU0JPB0q7xQHqdQuJviOW8z,最终可用链接为:
https://drive.google.com/uc?export=download&id=18tCKlaTfgzU0JPB0q7xQHqdQuJviOW8z

代码示例(使用Fetch API读取XML)

// 假设已初始化Google Maps实例map
fetch('https://drive.google.com/uc?export=download&id=18tCKlaTfgzU0JPB0q7xQHqdQuJviOW8z')
  .then(response => {
    if (!response.ok) throw new Error('网络请求失败');
    return response.text();
  })
  .then(xmlText => {
    // 解析XML内容
    const parser = new DOMParser();
    const xmlDoc = parser.parseFromString(xmlText, 'text/xml');
    
    // 提取邮局数据并添加到地图(根据你的XML结构调整选择器)
    const postOffices = xmlDoc.querySelectorAll('postOffice');
    postOffices.forEach(office => {
      const lat = parseFloat(office.querySelector('lat').textContent);
      const lng = parseFloat(office.querySelector('lng').textContent);
      const name = office.querySelector('name').textContent;
      
      new google.maps.Marker({
        position: { lat, lng },
        map: map,
        title: name
      });
    });
  })
  .catch(err => console.error('处理XML出错:', err));

注意:确保Google Drive文件共享权限设置为「知道链接的任何人都可以查看」,否则链接会返回权限错误。

方法2:使用Google Apps Script做代理(解决跨域限制)

如果修改链接后仍遇到跨域问题,可搭建简单代理服务:

  1. 打开Google Apps Script,新建项目
  2. 替换默认代码为:
function doGet() {
  const fileId = '18tCKlaTfgzU0JPB0q7xQHqdQuJviOW8z';
  try {
    const file = DriveApp.getFileById(fileId);
    const xmlContent = file.getBlob().getDataAsString();
    
    const output = ContentService.createTextOutput(xmlContent);
    output.setMimeType(ContentService.MimeType.XML);
    // 设置CORS允许所有域名访问
    output.setHeaders({ 'Access-Control-Allow-Origin': '*' });
    return output;
  } catch (err) {
    return ContentService.createTextOutput('读取文件失败: ' + err.message)
      .setMimeType(ContentService.MimeType.TEXT);
  }
}
  1. 点击「部署」→「新部署」,选择「Web应用」:

    • 执行方式:选择「我」
    • 谁可以访问:选择「任何人,甚至匿名」
    • 复制生成的Web应用URL
  2. 在Google Sites的JavaScript中使用该URL:

fetch('你的Apps Script Web应用URL')
  .then(response => response.text())
  .then(xmlText => { /* 后续解析逻辑同方法1 */ })
  .catch(err => console.error(err));

方法3:将XML转换为Google Sheets并发布为XML格式

若前两种方法不适用,可转换数据存储方式:

  • 将XML内容导入Google Sheets,整理成表格结构
  • 点击「文件」→「分享」→「发布到网络」
  • 选择发布格式为「XML」,复制发布后的URL
  • 在JavaScript中直接fetch该URL读取XML内容

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 04:45:59