gpt4 book ai didi

javascript - 使用 javascript 时 Google Web App 未打开 http 链接

转载 作者:行者123 更新时间:2023-12-03 06:09:26 24 4
gpt4 key购买 nike

可能有比我下面提出的解决方案更好的解决方案,但它解决了我尝试将变量从 Google Apps 脚本传递到 Google Web App 中的 JavaScript 的最初问题。网页中的 scriptlet 会进行大量脚本调用,并且由于它是同步执行的,因此页面看起来有 15 秒没有加载。 JavaScript 解决了这个问题。

function doGet(e) {
//check to see what the user is hoping to do
var upTo = e.parameter.upTo;
var userAgentResponse = HtmlService.getUserAgent();
//check where we are up to, URL will need ?upTo=profile added to it.
if (upTo == "profile"){
//get name from URL will need ?upTo=profile&firstName=placeholder&surname=placeholder
var firstName = e.parameter.firstName;
var surname = e.parameter.surname;
var fullName = firstName + " " + surname;
if (userAgentResponse.indexOf("iPhone")>-1) { //check to see if it is an iPhone and then use the specific iPhone profile page becaause of viewport issues
//var t = HtmlService.createTemplateFromFile('iphoneProfilePage');
var code = HtmlService.createHtmlOutputFromFile('iphoneProfilePage').getContent();
}//end if Iphone
else {
//var t = HtmlService.createTemplateFromFile('profilePage');
var code = HtmlService.createHtmlOutputFromFile('profilePage').getContent();
}//end else
//t.data = [firstName, surname, userAgentResponse];
//return t.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME).setTitle("Response Services Inc.").addMetaTag('viewport', 'width=device-width, initial-scale=1.0');
var newCode = code.replace("<script id=\"firstLoad\">", "<script id=\"firstLoad\">\n var firstName = \"" + firstName + "\";\n var surname = \"" + surname + "\";\n" +
"var fullName = \"" + fullName + "\";\n");
var html = HtmlService.createHtmlOutput(newCode).asTemplate();
return html.evaluate().setSandboxMode(HtmlService.SandboxMode.IFRAME).setTitle("Response Services Inc.").addMetaTag('viewport', 'width=device-width, initial-scale=1');
}
}

我遇到的下一个障碍让我和其他与我交谈过的人感到困惑。在下面的 HTML 中,有几个 http 链接和一些 https 链接。当使用上面的 doGet() 时,http 链接似乎违反了 https 协议(protocol),并且不会打开新页面,但是当我使用注释掉的代码(即 createTemplateFromFile(),而不是 createHtmlOutput())时。 asTemplate()) http 链接工作正常。另外,如果我在新窗口中打开链接,则页面可以正常打开。新窗口并不是一个好的解决方案,因为用户需要前后导航。

 <nav>
<label for="drop" class="toggle">Menu</label>
<input type="checkbox" id="drop" />
<ul class="menu">
<li><a href="http://rsi-intranet.org" target="_blank">Home</a></li>
<li><a href="https://script.google.com/a/macros/responseservices.org/s/AKfycbyz6TzObVUrWo0fiXHH0vU9DNO3511w1tVWrdVEUVsrjo_ejVHS/exec?upTo=SUList&letter=0">Service Users</a></li>
<li><a href="https://script.google.com/a/macros/responseservices.org/s/AKfycbyyVpvvDivBcwktFmHw-DrxWOTKUT17Ir2jdG2Oi4c/exec?upTo=progDays">Activities & Supports</a></li>
<li><a href="http://www.rsi-intranet.org/policies-and-procedures" target="_blank">Policies and Procedures</a></li>
<li><a href="http://www.rsi-intranet.org/quick-forms" target="_blank">Quick Forms</a></li>
<li><a href="http://www.rsi-intranet.org/help-and-learning" target="_blank">Help & Learning</a></li>
</ul>
</nav>

我已搜索过与此相关的 Google Apps 文档,但尚未找到原因。很想知道答案。

最佳答案

您应该将 target="_blank"与超链接一起使用,因为网络应用程序在 IFRAME 内提供。某些网站可能会通过将 X-Frame-Options header 设置为 DENY 来拒绝 IFRAME 内的链接。

关于javascript - 使用 javascript 时 Google Web App 未打开 http 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39381168/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com