我在谷歌应用脚本中遇到了使用UIApplication的问题,但仅在Chrome 18.0.1025.142 m上,我的应用程序在Firefox 3.6和Chrome 16.x.x上运行正常。 我将我的chrome版本更新为19.0.1084.56 m。问题仍然存在。
在Chrome 18.0.1025.142 m和19.0.1084.56 m上,我有以下行为: 当我尝试显示UI应用程序时,我的电子表格上会显示一个空白框架,并且我被要求对对象userAppPanel执行“另存为”操作。
在Chrome 16.x.x或Firefox 3.6上,我有一个带有面板,文本框和按钮的UI应用程序。
这是我的应用程序创建代码:
// Create my application
var mydoc = SpreadsheetApp.getActiveSpreadsheet();
var myapp = UiApp.createApplication();
myapp.setTitle("Translation selector");
// create panels, text boxes and widgets
var mypanel = myapp.createVerticalPanel();
// Create input boxes and button
var textBoxA = myapp.createTextBox();
textBoxA.setName('Input search filter here').setId('SearchText');
var MyButton = myapp.createButton("Fill the tables");
mypanel.add(textBoxA);
mypanel.add(MyButton);
// create handler to respond to events
var clickHandler = myapp.createServerClickHandler("respondToSubmit");
MyButton.addClickHandler(clickHandler);
clickHandler.addCallbackElement(mypanel);
// assemble everything in app
myapp.add(mypanel);
//mydoc.show(myapp);
//return myapp;
var doc = SpreadsheetApp.getActive();
// show the app
doc.show(myapp);
}
答案 0 :(得分:1)
我在Chrome 21.0.1180.89上遇到类似的OSX问题。几个小时前,使用mail merge script在Win8上完美地使用了类似的最新版Chrome。
我很确定这是一个安全问题。
取消授权应用程序(在帐户 - >安全性下),然后重新加载脚本并重新授权它有帮助。不确定它是在每个浏览器级别还是其他东西..
答案 1 :(得分:1)
请添加此代码,
根据您的问题,它适用于Chrome。
function saveTextAsFile()
{
var textToWrite = document.getElementById('area').value;
var textFileAsBlob = new Blob([textToWrite], {type:'text/plain'});
var fileNameToSaveAs = "ecc.plist"/*Your file name*/;
var downloadLink = document.createElement("a");
downloadLink.download = fileNameToSaveAs;
downloadLink.innerHTML = "Download File";
if (window.webkitURL != null)
{
// Chrome allows the link to be clicked
// without actually adding it to the DOM.
downloadLink.href =
window.webkitURL.createObjectURL(textFileAsBlob);
}
else
{
// Firefox requires the link to be added to the DOM
// before it can be clicked.
downloadLink.href = window.URL.createObjectURL(textFileAsBlob);
downloadLink.onclick = destroyClickedElement;
downloadLink.style.display = "none";
document.body.appendChild(downloadLink);
}
downloadLink.click();
}
答案 2 :(得分:0)
我有一些我开发的脚本用户,FormEmailer(在脚本库中提供)也有这个问题。但是我们还无法确定产生这种情况的情况。
您正在测试自己的电子表格吗?或者它是否共享,你不是主人?您是否在同一电子表格中有其他脚本项目?您是所有脚本的所有者吗?
(我认为如果你改变你编辑你的问题和我的答案,而不是在“有限的”评论中进行讨论,那会更好。)
答案 3 :(得分:0)
我遇到同样的问题:
经过几次测试后,有关此内容的详细信息。它似乎是由于用户触发脚本执行,以及触发器的特性: - 如果从电子表格中的自定义菜单调用该函数,一切都适用于每个人 - 如果函数被调用onOpen(),一切都适合每个人 - 如果在函数上设置了可安装的onEdit或onOpen触发器,那么设置它的人一切正常,而对其他人则不好。 无论该人是否是所有者,都会观察到最后的行为。
基本上似乎唯一不合适的时候是有人打开或编辑电子表格,而且该功能是由其他人安装的可安装触发器触发的。
这是一种痛苦。