使用JavaScript以编程方式编辑Google文档

时间:2012-06-15 19:50:37

标签: javascript reverse-engineering google-docs google-docs-api google-apps-script

我要做的是运行一些JavaScript代码,将文本输入到Google文档中。到目前为止,我所做的是在我的个人网页上创建一个嵌入Google文档的iframe元素。我现在要做的是使用Google源代码中的函数来输入文本。

当我使用Chrome检查器和js美化器时,我发现如果我收听按键事件,我会被带到以下代码段:

function dKa() {
   var a = eKa, b = TJa ? function(c) {
      return a.call(b.src, b.key, c)
   } : function(c) {
      c = a.call(b.src, b.key, c);
      if (!c)
      return c
   };
   return b
}

我尝试在用简单的onload="function();"事件加载页面时调用该函数,但是徒劳的尝试产生输出,但没有任何反应。有没有办法做我想做的事情?我想找到正确的函数来调用,这样我就可以通过该函数将文本写入doc。但是,代码似乎过于混淆,无法使用。

我知道要从父框架引用Google文档(iframe)代码,我需要执行以下操作:document.getElementById("iframeID").contentWindow.theFunction() 我执行错了吗?据我所知,无法使用他们的API实时编辑Google文档。

这也是我第一次在这里发帖,所以如果这太模糊,请告诉我,希望我能澄清一下。提前谢谢。

3 个答案:

答案 0 :(得分:10)

正如其他人所指出的那样,同源策略会阻止您正在采取的方法,并且尝试对其进行逆向工程无论如何都是愚蠢的,因为实施可能随时发生变化(甚至对于不同的用户而言也是如此)谷歌推出更新)。

但是,Google有一个名为Google Apps Script的API。大多数教程都面向电子表格,但DocumentApp,DocsList,Document等有documentation。您可能需要重新考虑一下您的方法,但您仍应该能够实现目标。

答案 1 :(得分:0)

据我所知,由于跨站点安全限制,这是不可能的。如果源域相同,则只能访问页面的DOM。

答案 2 :(得分:0)

好吧,你不能像iFrames那样在外部网站上编写脚本。查看same origin policy