2010-11-04 55 views
1

我們每天都會在幾個客戶端上發生「訪問被拒絕」javascript錯誤(每當發生未處理的js錯誤時,我們都會通過webservice調用通知) 。錯誤發生在.04%的頁面請求上,所以它不是常見的,也不是我們可以重現的。嘗試打開iframe來編寫內容時,定期「訪問被拒絕」

在IE6,IE7和IE8上觀察到錯誤,因此它似乎是一個IE問題。

這裏是簡化的標記和關聯的JavaScript,導致該問題:

標記

<iframe id="frm" src="javascript:false;" /> 

JS

var frm = document.getElementById("frm"); 
var frmDoc = frm.contentWindow.document; 
frmDoc.open(); 
frmDoc.write('some html'); 

「訪問被拒絕」 當我們調用frmDoc發生錯誤。打開()。

在網上尋找可能導致這種情況的線索之後,我唯一的希望是有人可能會對可能發生的事情有一個有效的假設。也許這是一個IE錯誤,但如果有辦法解決它,我們想追求它。

歡迎所有的狂野想法。

回答

0

一個可能的原因: IE瀏覽器的javascript協議被禁用/未知(可能被某些安全軟件強制)。

我做了一個測試,在註冊表裏改名爲javascript-protocol,這樣IE就無法處理它(iframe的URL)並得到相同的錯誤信息。

嘗試使用about:blank代替javascript:false;

+0

不幸的是這會導致IE6通過SSL彈出一個消息框,指出「此頁包含安全和不安全的項目。是否要顯示不安全的內容」。我應該指出,遇到「拒絕訪問」的用戶通常只會看到一次,然後隨後就會消失。 – jbalinski 2010-11-04 19:19:58

+0

因此,創建一個簡單的html文檔作爲dummie並將其設置爲iframe的src – 2010-11-04 23:52:46

+0

回到這一個。我們最終放棄並發現使用一個簡單的html文檔作爲假人仍然遭受同樣的問題。它似乎有一些IE設置,即使iframe和文檔在完全相同的域上,也不允許發生任何交叉iframe通信。我猜測這應該是一個Windows政策的地方,因爲我找不到任何可以解釋這個問題的瀏覽器選項。 – jbalinski 2011-09-28 19:24:45

相關問題