我有一个嵌入了iframe页面的HTML + javascript页面。我希望能够在嵌入式页面中使用javascript在封闭页面中触发提交按钮(这会导致POST)。有没有图书馆已经这样做?在包含的iframe中触发按钮
0
A
回答
7
如果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
承载的网页在其他领域,那么,如果你尝试从封闭的页面提交,你可能会得到某种形式的“拒绝访问”错误。这是浏览器为防止恶意脚本而采取的安全预防措施(例如,防止像代表用户自动提交表单)
1
iframe
需要位于同一个域中,否则您就是SOL。
要访问框架中的元素,您需要在不同的浏览器中表现不同。
首先,获得帧:
document.getElementById
始终有效。window.frames[ frameName ]
应该也没关系,但使用第一个
然后得到的文件(这里就是它得到棘手):
var doc = yourFrame.contentDocument ? yourFrame.contentDocument : yourFrame.contentWindow.document
标准的浏览器需要使用contentDocument
; IE(至少在8之前)使用contentWindow.document
来获取文档。
最后,您可以抓取表单并提交。
doc.getElementById('yourForm').submit()
相关问题
- 1. 关闭包含Iframe的Popup,单击iframe上的按钮
- 2. 包含JSP页面提交不触发操作按钮
- 3. 包含的布局中的图像按钮不会触发onclicklistener上ActionDown
- 4. ReactJS OnKeyPress触发按钮按
- 5. Tkinter - 包含按钮的类
- 6. 在按钮中包含HTML箭头
- 7. 在webview中触发后退按钮
- 8. 在JavaScript中点击触发按钮?
- 9. 将文本插入设计模式iframe由iframe之外的按钮触发
- 10. 使按钮触发键2按钮
- 11. 输入按钮时触发按钮
- 12. 按钮单击不在触发器形式中触发
- 13. 居中包含按钮的窗体div
- 14. vb.net/winform DropDown包含按钮
- 15. Repeater中的按钮不会触发ItemCommand
- 16. 触发ajaxStart()onclick按钮
- 17. C#按钮没有触发?
- 18. RecylerView按钮不会触发
- 19. 触发一个按钮WPF
- 20. WPF按钮数据触发
- 21. 触发按钮启用
- 22. 触发按钮导致fullpostback
- 23. 触发按钮单击
- 24. Silverlight触发按钮模板?
- 25. 触发更新按钮woocommerce
- 26. A4j按钮不会触发
- 27. iframe中的目标按钮?
- 28. jquery中的按钮点击事件不会触发asp按钮
- 29. 如何从包含页面(可视页面)触发按钮单击事件
- 30. 将按钮包含到.cs文件中
yourFrame.contentWindow.document只适用于IE – geowa4 2009-05-19 17:37:04
@George:你绝对正确;感谢捕捉! – 2009-05-19 17:40:50