[英]Preventing “SCRIPT5: Access is denied” error in IE
場景:A.com上的頁面A在B.com上有一個包含頁面B的IFrame。 網頁B使用jQuery的1.10.1並且不需要與頁面A.溝通
無論如何,在IE9和IE10中,jQuery會生成“SCRIPT5:訪問被拒絕”。 錯誤,似乎拒絕執行任何jQuery。 我不需要跨域通信,AJAX請求等,但我確實需要在頁面B中加載和執行jQuery而不會出錯。
有沒有辦法防止IE9和IE10中出現此錯誤(並禁止執行代碼)? (僅供參考,其他瀏覽器類似地生成“拒絕訪問”錯誤,但它們不會妨礙代碼執行)
更新:
jsFiddle: http : //jsfiddle.net/86q5k/4/
主頁的內容是(來自jsFiddle):
<iframe src="http://endorkins.com/test-iframe.html"></iframe>
iFramed頁面的內容是:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
console.log('Hello! Congratulations. Your browser is neat, and doesn\'t sniff glue! (http://bit.ly/12QTvTT)');
});
</script>
</head>
<body>
</body>
</html>
Chrome中的結果(請注意控制台中的消息):
IE 9.0.8112中的結果(注意在控制台中省略了消息):
我找到了一個解決方法。 這似乎是jQuery 1.10.1中的一個錯誤(“功能”?)。 使用jQuery 1.10.0,不再出現錯誤:
<iframe src="http://endorkins.com/test-iframe-1.10.0.html"></iframe>
奇怪。 很奇怪。 如果有人知道為什么會在1.10.1中發生這種情況,以及如何解決它,我(以及全球各地的jQuery小伙伴)肯定會非常有興趣知道! :)
更新:看起來這是一個合法的jQuery 1.10.1錯誤: http : //bugs.jquery.com/ticket/13980
更新:根據@ emanuele-greco,這在1.10.2及更高版本中得到修復。 因此,升級您的jQuery版本可能會解決問題。
好的我發現了同樣的問題並用最奇怪和最可怕的解決方案修復了它。
我正在嘗試使用圖像彈出文件上傳對話框,然后對更改事件執行自動表單提交。 我已經辭職了,在IE中用戶將不得不點擊圖片來發布帖子。 我把圖像放在表格上(就像我在網站上的幾個地方。這就產生了訪問被拒絕的錯誤,在震驚中我再次點擊它並且得到錯誤。在第三次點擊它工作。所以我再試一次同樣的結果前兩次點擊錯誤,第三次工作。而簡單的Javascript代碼,作為自制肥皂丑,但現在工作是
var files= document.getElementById("newfiles");
files.onchange = addFiles;
function addFiles() {
try {
$("#fileupload").submit();
} catch (e) {
try {
$("#fileupload").submit();
} catch (e) {
try {
$("#fileupload").submit();
} catch (e) {
alert(e);
}
}
}
};
還要確保您沒有從諸如Google Hosted Libraries之類的CDN加載您的jQuery資產。 由於域不同,這違反了Microsoft用於防止Internet Explorer中的跨站點腳本的某些安全協議。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.