【问题标题】:Getting wrong url in Google App Script in IFRAME sandbox mode在 IFRAME 沙盒模式下的 Google App 脚本中获取错误的 url
【发布时间】:2015-05-01 18:11:28
【问题描述】:

我有一个 Google 应用脚本,它使用沙盒模式为IFRAME 呈现具有自定义样式和脚本的我的 html 页面,并且每个获得授权的人都可以访问它。

代码.gs

function getScriptUrl() {
 var url = ScriptApp.getService().getUrl();
  console.log(ScriptApp.getService());
 return url;
}

function doGet(e) {
  if (!e.parameter.page) {
    // When no specific page requested, return "home page"
    return HtmlService.createTemplateFromFile('index').evaluate()
        .setTitle('L1 - UX')
        .setSandboxMode(HtmlService.SandboxMode.IFRAME);
  }
  // else, use page parameter to pick an html file from the script
  return HtmlService.createTemplateFromFile(e.parameter['page']).evaluate()
      .setTitle('L1 - UX')
      .setSandboxMode(HtmlService.SandboxMode.IFRAME);
}

function include(filename) {
  return HtmlService.createHtmlOutputFromFile(filename)
      .setSandboxMode(HtmlService.SandboxMode.IFRAME)
      .getContent();
}

index.html

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <!-- stylesheets -->
        <?!= include('stylesheets'); ?>        
    </head>
    <body>
        <?var url = getScriptUrl();?>
         <!-- application content -->
         <div class="container-fluid">
          <div class="row">
            <!-- left sidebar -->
            <div class="col-sm-3 col-md-2 sidebar">
              <ul class="nav nav-sidebar">
                <li><a href='<?=url?>?page=overview'>Overview</a></li>
                <li class="active"><a href='<?=url?>?page=index'>Form</a></li>
                <li><a href='<?=url?>?page=report'>Reports</a></li>
                <li><a href='<?=url?>?page=export'>Export</a></li>
              </ul>
            </div> <!-- left sidebar -->
            <!-- main content -->
            <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
               <h2 class="sub-header">Content</h2>
            </div> <!-- main content -->
           </div>
         </div> <!-- application content -->
         <!-- JavaScripts -->
         <?!= include('javascripts'); ?>
    </body>
</html>

我从ScriptApp.getService().getUrl() 获得的网址是错误的。但是如果我省略了setSandboxMode(HtmlService.SandboxMode.IFRAME),它会给出正确的 url,但是这次我的应用程序样式不能正常工作并且看起来是有线的。

更新:

我正在访问这样的主页(工作)-https://script.google.com/macros/s/&lt;script&gt;/dev?page=index

当像上面那样访问时,它会生成错误的 url。

实际发布的链接是-https://script.google.com/macros/s/&lt;script&gt;/exec

【问题讨论】:

    标签: javascript html google-apps-script google-apps


    【解决方案1】:

    /dev 是您的线索。开发模式与当前代码相关联,而 exec 与已发布版本相关联。

    您正在返回开发脚本解析到的 URL。

    保存代码并发布最新版本。然后应该按预期工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-06
      • 1970-01-01
      • 2018-03-30
      • 2012-04-20
      • 2021-01-18
      • 2015-11-16
      • 2018-10-26
      相关资源
      最近更新 更多