我有一个HTML + javascript页面,其中嵌入了一个iframe页面。我希望能够触发一个提交按钮(这会导致一个帖子)内嵌入的网页使用javascript的封闭页面。有没有图书馆已经在做这件事了?
发布于 2009-05-19 17:24:19
如果IFRAME在同一个域中托管一个页面,您可以这样说
// To trigger from the enclosing page
var yourFrame = document.getElementById("iframeId");
if(yourFrame.contentDocument) {
yourFrame.contentDocument.getElementById("formId").submit(); // FF, etc
} else {
yourFrame.contentWindow.document.getElementById("formId").submit(); // IE
}
// To trigger from the enclosed page
document.getElementById("formId").submit();..。其中iframeId是iframe的ID,formId是iframe内表单的ID,类似于
在文档内部:
<iframe id="iframeId" src="/somePage.html" ... >在文档中的“somePage.html”处:
<form id="formId" method="post" action="...">请注意,如果IFRAME托管的是另一个域中的页面,那么如果您尝试从封闭的页面提交,您可能会收到某种“拒绝访问”的错误。这是浏览器为防止恶意脚本攻击而采取的安全预防措施(例如,为了防止自动提交表单之类的事情)。
发布于 2009-05-19 17:35:57
iframe必须在同一个域中,否则您就是SOL。
要访问框架中的元素,您需要在不同的浏览器中有不同的行为。
首先,获取帧:
document.getElementById always works.window.frames[ frameName ]也应该可以,但请使用第一个然后获取文档(这是它变得棘手的地方):
var doc = yourFrame.contentDocument ? yourFrame.contentDocument : yourFrame.contentWindow.document标准浏览器要求使用contentDocument;IE (至少在8版本之前)使用contentWindow.document获取文档。
最后,您可以抓取表单并提交它。
doc.getElementById('yourForm').submit()https://stackoverflow.com/questions/884041
复制相似问题