我在我的web應用程序中使用jquery並使用iframe來顯示託管在同一websphere服務器上的應用程序。通過下面的代碼,我就能實現自動登錄到在iframe顯示Web應用程序....Jquery錯誤 - >權限被拒絕訪問屬性文件
JSP
<form:form id="posManagerLoginForm"
action="${posManagerUrl}"
target="posManagerFrame"
method="post"
class="ym-form whitenopadding">
<input type="hidden" name="user_name" value="myusername" />
<input type="hidden" name="password" value="mypassword" />
</form:form>
<div class="ym-gbox">
<iframe id="posManagerFrame" name="posManagerFrame" class="posManagerFrame"></iframe>
</div>
JS
$().ready(function() {
$("#posManagerLoginForm").submit();
});
到目前爲止好,但現在我現在正在嘗試更改JS以便能夠在登錄發生後,即在表單提交後,獲取iframe中的內容。
$().ready(function() {
$("#posManagerLoginForm").submit(function(e){
e.preventDefault();
this.submit();
var iframe = $("#posManagerFrame").contents();
return true;
});
$("#posManagerLoginForm").trigger("submit");
});
正如你所看到的,我註冊了一個表單提交函數並嘗試並在加載時觸發函數。我有兩個問題....
- 我得到權限被拒絕試圖讓iframe的內容時訪問屬性文件錯誤。
- 儘管.trigger(「submit」)語句確實會導致我的函數執行,但它似乎會提交表單並觸發該函數。我試圖不提交表單直到this.submit()語句。
有沒有人知道我要去哪裏錯了?
今天早上我已經發布了幾個問題。對於那個很抱歉。謝謝你的幫助。
不要以爲你可以獲得iFrmae的內容。我過去使用過window.postMessage。有一個規範。 https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage儘管你需要一個回退。 – Leeish
感謝您的輸入。由於一些愚蠢的原因,我們不得不在公司支持ie6,所以我不認爲這是我的選擇。我的終極目標是能夠攔截用戶點擊iframe中的註銷按鈕的事件,因爲註銷時瀏覽器已關閉。因此,作爲替代方案,我可能會嘗試查看是否可以攔截關閉的瀏覽器事件,並以某種方式檢查請求是否來自iframe。 – Richie
我只是不認爲這是可能的,如下所述Alex。這只是一個權限問題。否則,我可以在您的銀行網站上嵌入iFrame,並從該iFrame中獲取我想要的任何內容。只是不允許,除非你控制兩個頁面,我認爲只有postMessage。你可以圍繞一個方向(如果你控制兩個頁面)將內容從iframe推送到臨時文件,從父頁面輪詢查找臨時文件,然後在存在時抓取它。但不完全理想或光滑。 – Leeish