【问题标题】:Add content of showModalDialog() to the clipboard Google Script将 showModalDialog() 的内容添加到剪贴板 Google Script
【发布时间】:2020-01-01 00:38:29
【问题描述】:

单击按钮时,我已将格式化数据添加到模态对话框

我希望showModalDialog() 的内容在我单击按钮时也自动添加到剪贴板

模态框正在使用以下代码生成,temp 是我要添加到剪贴板的输出

//Output to Html
 var htmlOutput = HtmlService
              .createHtmlOutput(temp)
              .setSandboxMode(HtmlService.SandboxMode.IFRAME)
              .setWidth(600)
              .setHeight(500);
SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'Filter OptionList Maker');

编辑;好的,我想Modal Dialog 可能是题外话,正确的问题可能是如何将格式化字符串temp 添加到剪贴板

这是我所说的格式化字符串的一个例子

filter {
  target: element;
  as: dropdown;
  padding: 5;
  summary: "Network Practice";
  default: show-all;
  multiple: true;

  option {
   label: "< 1 year";
   selector: element["NETWORK PRACTICE"="< 1 year"];
  }
  option {
   label: "1-3 years";
   selector: element["NETWORK PRACTICE"="1-3 years"];
  }
  option {
   label: "3-10 years";
   selector: element["NETWORK PRACTICE"="3-10 years"];
  }
  option {
   label: "> 10 years";
   selector: element["NETWORK PRACTICE"=">10 years"];
  }
 }

我已经搜索了如何做到这一点,但我没有找到解决方案

谢谢

【问题讨论】:

    标签: javascript google-apps-script web-applications modal-dialog clipboard


    【解决方案1】:

    您可以在 html 中创建一个textarea,然后使用 html 中的按钮将其中的数据复制到剪贴板。

    片段:

    copy.html:

    <textarea id="copy"><?=temp?></textarea>
    <button>Copy</button>
    <script type="text/javascript">
      let t = document.getElementById('copy');
      let copy = () => {
        t.select();
        document.execCommand('copy');
      };
      copy();//try copying without user click 
      let bt = document.querySelector('button');
      bt.addEventListener('click', copy);
    </script>
    

    code.gs

    //Output to Html
    var template = HtmlService.createTemplateFromFile('copy');
    template.temp = temp;
    var htmlOutput = template.evaluate();
    SpreadsheetApp.getUi().showModalDialog(htmlOutput, 'Filter OptionList Maker');
    
    

    阅读:

    【讨论】:

    • document.execCommand 已弃用,推荐的替代品 navigator.clipboard.writeText 在此上下文中会出现安全错误。不确定您是否可以正确授予所需的 iframe 权限,因为它们似乎是一成不变的:developers.google.com/apps-script/guides/html/restrictions
    • @Kev 如果我没记错的话,execCommand('copy') 仍然有效。如果您想要 iframe 上的新权限,最简单的方法是在 issuetracker 上向 Google 提出功能请求,并在此处使用 tracker 链接提出问题,以增加 issuetracker 上的星数。有关详细信息,请参阅tag info page
    • 它仍然有效,你是对的,很抱歉没有强调这一事实。感谢您的链接。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-16
    • 1970-01-01
    • 1970-01-01
    • 2011-05-18
    相关资源
    最近更新 更多