google chrome app脚本要求保存为userAppPanel

时间:2012-06-14 11:00:01

标签: google-apps google-apps-script

我在谷歌应用脚​​本中遇到了使用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);

}

4 个答案:

答案 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触发器,那么设置它的人一切正常,而对其他人则不好。 无论该人是否是所有者,都会观察到最后的行为。

基本上似乎唯一不合适的时候是有人打开或编辑电子表格,而且该功能是由其他人安装的可安装触发器触发的。

这是一种痛苦。