我试图在包含google表单的iframe中使用jQuery/javascript。下面是代码片段:
<body>
<iframe id="myFormFrame" src="https://docs.google.com/forms/d/smfjkafj809890dfafhfdfd/viewform?embedded=true" width="760" height="1750" frameborder="0" marginheight="0" marginwidth="0">Loading...</iframe>
<button id="mybtn">Click</button>
<script type="text/javascript">
$('#mybtn').click(function(){
var m=document.getElementById("ss-form");
alert(m.innerHTML);
});
</script>单击按钮应该给出表单的innerHTML (在加载到iFrame内部时,它的id为"ss-form")。但这不管用。那么,原因是什么(跨域iframe?)?让jQuery与google协同工作的方法是什么?
如果有用的话,我正在尝试将定制的ajax验证设置到位(例如,email id字段必须包含来自不同数据库的特定列表的电子邮件)。
编辑
这看起来像是一个跨域问题。我心里有这个疑问。但是在阅读了这的文章之后,它看起来是可能的。
发布于 2014-10-18 09:19:42
document.getElementById搜索当前文档,而不是加载到框架中的其他文档。
如果框架文档位于您自己的站点上,那么您可以首先访问框架,然后访问文档(通过contentDocument)。然后打电话给getElementById。
既然它是跨源的,那就失败了。如果你考虑一下,如果Mallory的邪恶网站在你登录时把你银行的网上银行网站放在一个框架里,那么原因是显而易见的。
如果您有谷歌的合作(您没有),那么您可以使用postmessage在框架之间传递消息。
这看起来像是一个跨域问题。我心里有这个疑问。但是在看了这篇文章之后,它看起来是可能的。
他们没有使用谷歌托管的表单。他们使用谷歌工具设计表单,然后将HTML复制到自己的网站上。如果谷歌实施CSRF保护,那就会崩溃。
https://stackoverflow.com/questions/26438090
复制相似问题