我有一個嵌入了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