簡體   English   中英

在IE中防止“SCRIPT5:訪問被拒絕”錯誤

[英]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,不再出現錯誤:

http://jsfiddle.net/86q5k/5/

<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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM