我试图在Google经典网站中嵌入一个来自Google Scripts的项目,该项目包含指向同一Google Classic网站内单独页面的可点击图片(我有理由不直接使用Sites编辑器并插入图像带有页面链接)。
问题是,当我点击图像/锚点时,我发现可怕的“sites.google.com拒绝连接”。没有错误记录在Cloud Platform中,但console.log错误是这样的:Refused to display 'https://sites.google.com/a/DOMAIN/SITE_NAME/PAGE_NAME/' in a frame because it set 'X-Frame-Options' to 'sameorigin'
。
我如何从脚本嵌入到经典网站:
以下是我嵌入的Google Apps脚本中的代码:
Code.gs文件
function doGet() {
return HtmlService.createTemplateFromFile('Buttons').evaluate()
.setTitle('Client Home Page');
}
Buttons.html文件
<!DOCTYPE html>
<html>
<head>
<?!= HtmlService.createHtmlOutputFromFile('stylesheet').getContent(); ?>
</head>
<body>
<a href="https://sites.google.com/a/DOMAIN/SITES_NAME/PAGE_NAME/" imageanchor="1" target="" >
<img src="https://sites.google.com/a/DOMAIN/IMAGE_LINK" border="0" alt="Image" >
</a>
</body>
</html>
我也尝试过:
onclick
事件以获取URL(请参阅下面的代码更改)。结果:嵌入区域,按钮显示在单击时变为空白,在云平台或控制台中没有记录错误。fetchUrl尝试:更改Code.gs文件
function doGet() {
return HtmlService.createTemplateFromFile('Buttons').evaluate()
.setTitle('Home');
}
function setUrl(url) {
var response = UrlFetchApp.fetch(url);
return response.getContentText();
}
fetchUrl尝试:更改Buttons.html文件中的锚标记
<a href="" onclick="google.script.run.setUrl('https://sites.google.com/a/DOMAIN/SITES_NAME/PAGE_NAME/')" imageanchor="1" target="" >
<img src="https://sites.google.com/a/DOMAIN/IMAGE_LINK" border="0" alt="Image" >
</a>
任何帮助或见解将不胜感激!
此外,Leora
弄清楚了!我错过了我的HTML文件(<base>
)中的<base target="_top">
标记。
虽然这是在您在Google Apps脚本中创建的任何新HTML文件中自动提供的,但我已经使用VS Code编写的代码进行了复制和粘贴,因此省略了它。
一旦我把它添加回来,一切都按预期工作。如果其他人遇到这个问题,请留下这个。
非常感谢任何试图调查此事的人......
此外,Leora