我在GAS html服务中有一个应用程序,其中包含文件选择框,旁边有一个按钮,用于在新选项卡中打开它们。我无法弄清楚如何完成它。列表中的文件以google-drive-file-id形式获取其值(假设fileID1-3正常),并且我有一个用于获取整个链接的服务器脚本。以下是它的完成方式:
HTML:
<select id='fileBox' name='fileBox' onchange="google.script.run.withSuccessHandler(gotFileLink).getFileLinkById(this.value)">
<option value=fileID1>File1.pdf</option>
<option value=fileID2>File2.pdf</option>
<option value=fileID2>File3.pdf</option>
</select>
<input type="button" value="Open File" id="linkButton" />
服务器代码:
function getFileLinkById(fileID) { return DriveApp.getFileById(fileID).getUrl(); }
客户代码:
function gotFileLink(url) {
document.getElementById('linkButton').onclick = // what goes here?
}
我尝试了几种使用&#34; window.open&#34;但无法弄清楚如何使其发挥作用。 提前谢谢。
答案 0 :(得分:2)
以下代码可以帮助您在点击按钮时打开所需的链接。
这是一个有用的链接: JSFIDDLE
<select id='fileBox' name='fileBox'>
<option value='http://www.google.com'>File1.pdf</option>
<option value='http://www.google.com'>File2.pdf</option>
<option value='http://www.google.com'>File3.pdf</option>
</select>
<input type="button" value="Open File" id="linkButton" />
var btn = document.getElementById('linkButton');
btn.addEventListener('click',GetInfo,false);
function GetInfo(){
var e = document.getElementById("fileBox");
var selectedUrl = e.options[e.selectedIndex].value;
window.open(selectedUrl);
}
答案 1 :(得分:1)
回答我自己的问题,但基于maxspan的解决方案(这不是我想要的)我能够以另一种方式解决这个问题:
<select id='fileBox'>
<option value=fileID1>File1.pdf</option>
<option value=fileID2>File2.pdf</option>
<option value=fileID2>File3.pdf</option>
</select>
<input type="button" value="Open File" id="linkButton" onclick="runner.withSuccessHandler(window.open).getFileLinkById(document.getElementById('fileBox').value)" />
如果有人有不同/更好的答案 - 我仍然希望听到它...感谢maxspan帮助我。