JavaScript:getElementsByTagName返回空节点列表

JavaScript:getElementsByTagName返回空节点列表,javascript,iframe,gmail,Javascript,Iframe,Gmail,我正在gmail主页上尝试以下代码: var iFrame = document.getElementById('canvas_frame'); var innerDoc = (iFrame.contentDocument) ? iFrame.contentDocument : iFrame.contentWindow.document; var tag = innerDoc.getElementsByClassName('vI8oZc cS'); 标记总是以空节点列表的形式出现。我在调试

我正在gmail主页上尝试以下代码:

var iFrame = document.getElementById('canvas_frame');

var innerDoc = (iFrame.contentDocument) ? iFrame.contentDocument : iFrame.contentWindow.document;

var tag = innerDoc.getElementsByClassName('vI8oZc cS');

标记总是以空节点列表的形式出现。我在调试器中检查这一点,我可以看到第一个div中有一个属于这个类类型“vI8oZc cS”。如何获取节点元素而不是空列表?

如果iframe的源与父页面不在同一站点上,浏览器安全策略不允许执行此类操作。

getElementsByClassName
getElementsByTagName
?是否尝试过
innerDoc.querySelectorAll('.vI8oZc.cS')?实际上,我已经尝试了所有3个(GetElementsByCassName、getElementsByTagName和querySelectorAll),结果都是一样的-空节点列表;返回@Jahmic那么问题是这样的:没有元素响应您的条件。就这么简单。尝试转储
innerDoc.body.innerHTML
进行确认。事实上,我有点识别这些类-是来自GMail还是其他谷歌应用程序?是的,它们看起来像GMail中的类。而@Jahmic在问题的第一句话中谈到了这一点。@khomyakoshka这可能与此有关,或者最终起到了重要作用。但这是用户批准的“injected userscript”的一部分,其目的是绕过此类权限。@Jahmic,抱歉,您的帖子中没有足够清楚。但是现在我已经尝试在Firefox中运行这个用户脚本,它可以工作了。