Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript document.getElementById在Google web app中的工作方式很奇怪_Javascript_Dom_Google Apps Script_Web Applications - Fatal编程技术网

Javascript document.getElementById在Google web app中的工作方式很奇怪

Javascript document.getElementById在Google web app中的工作方式很奇怪,javascript,dom,google-apps-script,web-applications,Javascript,Dom,Google Apps Script,Web Applications,我正在学习谷歌脚本,并创建了一个简单的web应用程序。使用它(客户端),在Google Chrome navigator中观察到一种爬行行为(对我而言): 试图使用命令document.getElementById(“活动元素的ID”)通过控制台获取元素,未找到任何元素。但是,在使用inspector工具(FireFox和Chrome中的ctrl+c,并确保这样的ID存在)对元素进行分析后,元素变得可访问,并且只需重复fetch命令(document.getElementById(“活动元素的I

我正在学习谷歌脚本,并创建了一个简单的web应用程序。使用它(客户端),在Google Chrome navigator中观察到一种爬行行为(对我而言):

试图使用命令
document.getElementById(“活动元素的ID”)
通过控制台获取元素,未找到任何元素。但是,在使用inspector工具(FireFox和Chrome中的ctrl+c,并确保这样的ID存在)对元素进行分析后,元素变得可访问,并且只需重复fetch命令(
document.getElementById(“活动元素的ID”)
),就会出现预期的返回,这意味着函数正常工作,就会找到元素。我不知道这种行为为什么会发生,又是如何发生的

问题:为什么会有这种行为?我如何安全地创建或避免它

系统信息:Linux debian 4.9.0-11-amd64#1 SMP debian 4.9.189-3+deb9u2(2019-11-11)x86_64 GNU/Linux

p.S:在FireFox中,它总是返回null,即使在检查元素之后也是如此!铬行为稳定(检查前未发现,检查后发现)

提前谢谢

下面是上面页面的代码。doGet函数只返回该页。没有比这更重要的了


正文{显示:网格;对齐项:居中;}
按钮{左侧填充:40%;右侧填充:40%;}
谢谢你的支持!
下面的按钮具有IDbbb。尝试使用命令document.getElementById(“bbb”)在控制台中找到它。在Chrome中,您将得到null。但是,在检查元素(ctrl+c并在其上单击)之后,您将获得该按钮

我的ID是bbb-单击我复制上面提到的命令。 如果尝试document.body.getElementsByTagName(“IFRAME”)[0].contentWindow.document.getElementById('bbb'),则会因权限不足而失败

我的ID是fff-单击我复制上面提到的命令。 //copyToClipboard的代码是从复制的https://www.30secondsofcode.org/blog/s/copy-text-to-clipboard-with-javascript 只是用来说明这个问题。 const copyToClipboard=str=>{ const el=document.createElement('textarea'); el.value=str; 文件.正文.附件(el); el.select(); document.execCommand('copy'); 文件.正文.删除文件(el); }; document.getElementsByTagName(“按钮”)[0].onclick=function(){copyToClipboard('document.getElementById(“bbb”)}; document.getElementsByTagName(“按钮”)[1]。onclick=function(){copyToClipboard('document.body.getElementsByTagName(“IFRAME”)[0]。contentWindow.document.getElementById(“fff”);
要在iframe的上下文中使用控制台,请在或中选择需要连接的iframe


html所在的框架是带有src
https://*-script.googleusercontent.com
的框架

这和谷歌应用程序脚本有什么关系?我也有同样的行为。我不确定,但似乎控制台无法访问“userHtmlFrame”的内部,我认为这是正常的。但是,一旦你检查了元素,它就会强制将其添加到目标元素列表中。你需要显示一些复制问题()的代码。看看这个解决方案:然后共享谷歌应用程序脚本,这样我们就可以重现这个问题。我想它没有回答我的问题。我想知道它是如何可能的:搜索一个查找(给予null),检查项目,再次搜索,给予对象!它就像一个bug,特别是如果你认为它在iFrAME里面。还是我搞错了?@Danielbandera Chrome可能会在搜索时切换当前文档:查看标记为“顶部”的区域,并查看它是否会在搜索时发生变化。如果不是这样的话,请在chrome上发布gif或视频。