如何在新版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做代理(解决跨域限制)
如果修改链接后仍遇到跨域问题,可搭建简单代理服务:
- 打开Google Apps Script,新建项目
- 替换默认代码为:
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); } }
点击「部署」→「新部署」,选择「Web应用」:
- 执行方式:选择「我」
- 谁可以访问:选择「任何人,甚至匿名」
- 复制生成的Web应用URL
在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
相关产品推荐
相关产品推荐

