2011-03-18 319 views
15

IE9上出現奇怪的錯誤「SCRIPT70: Permission denied jquery.js, line 21 character 67」。搜索谷歌,但找不到任何東西,除了CKEditor上的錯誤。SCRIPT70:權限被拒絕IE9

位置這表明只包含以下內容:

P=navigator.userAgent,xa=false,Q=[],M,ca=Object.prototype.toString,da=Object.prototype.hasOwnProperty,ea=Array.prototype.push,R=Array.prototype.slice,V=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(typeof a==="string")if((d=Oa.exec(a))&&(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Sa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])]; 

人遇到這個錯誤?

* 附加信息: *我們打開一個iframe並在此iframe中調用一些javascript函數。

謝謝。

+2

您需要使用非縮小版來重現它,以便您可以看到實際導致它的代碼行。 – ThiefMaster 2011-03-18 12:46:26

+1

我剛剛意識到,它不允許任何腳本文件。我可以在非縮小的js文件中看到一條非常簡單的線條。 var imageType = jQuery(「#imageType」)。val(); 我們打開一個iframe並嘗試運行JavaScript內部可以這是原因嗎? – mehmet6parmak 2011-03-18 13:04:15

回答

10

當你的iframe是調用一些JavaScript(尤其是如果它影響到父頁面 - 如父URL的哈希值變化)在IE9的SCRIPT70錯誤發生時最有可能

檢查你的iframe的主機/協議/端口號相匹配。 IE9對主機名(在我的情況下是www部分)格外嚴格,而document.domain似乎沒有提供解決方法。

在處理多個iframe時遇到此問題並修復了它,希望這可以幫助其他人解決同一問題。

1

如果指向與父站點不同的域,則無法訪問任何iframe的內容。

-2

從這個頁面提示應該有所幫助:http://forum.jquery.com/topic/strange-behaviour-in-ie9

確保HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\的Internet Explorer \ MAIN \ FeatureControl \ FEATURE_OBJECT_CACHING \ IEXPLORE.EXE沒有被設置爲0(應該是1或丟失)

+0

這個解決方案適用於我。 (Windows XP,IE8) – RGA 2012-12-17 05:20:58

+15

Uuhhm,他們真的希望我告訴所有訪問我的公共站點的所有IE9用戶嗎? – 2013-10-30 16:19:51

+6

這是有史以來最糟糕的想法。你不能指望我告訴我的三千萬用戶改變他們的註冊表。你是認真的嗎? – Ryan 2014-06-24 18:35:22

-2

面對類似的問題(可能不是與jquery.js,但相同的錯誤描述)解決方案有點不同於上述。其實我已經在regedit中搜索了其他iexplore.exe行。我找到了其他兩個,並將其更改爲1,然後運行。

hkey_local_machine\software\microsoft\internet explorer\main\featurecontrol\feature_protocol_lockdown 
hkey_local_machine\software\microsoft\internet explorer\main\featurecontrol\feature_internet_shell_folders 
-2

如果您運行64位操作系統,請確保該鍵的值也被設置爲1:HKEY_LOCAL_MACHINE\SOFTWARE\**Wow6432Node**\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_OBJECT_CACHING\\iexplore.exe

沒有這個密鑰,我們在Internet Explorer 11

2
function Sizzle(selector, context, results, seed) { 
    var match, elem, m, nodeType, 

    // QSA vars 
    i, groups, old, nid, newContext, newSelector; 

    // MY EDIT - this try/catch seems to fix IE 'permission denied' errors as described here: 
    // http://bugs.jquery.com/ticket/14535 

    try{ 
    document === document; //may cause permission denied 
    } 
    catch(err){ 
    document = window.document; //resets document, and no more permission denied errors. 
    } 

    if ((context ? context.ownerDocument || context : preferredDoc) !== document) { 
    setDocument(context); 
    } 

    //...... snip .........// 
} 

http://jsfiddle.net/xqb4s/

+3

您應該在答案中添加一些解釋性文字。此外,我不明白你的jsfiddle如何演示任何東西 – 2014-09-08 13:46:11

+0

這有什麼用? – hyde 2015-04-06 17:14:02

+1

你需要編輯你的jquery - *。js並在sizzle函數中添加try catch(導致拒絕訪問的函數)。我不喜歡玩jquery文件,但它確實解決了這個問題 – David 2015-08-26 21:23:48

0

最近我遇到了這個錯誤。在我工作的應用程序中,我使用TinyMce文本編輯器作爲我們的電子郵件編輯器。這將創建一個iframe,其中包含我需要的電子郵件編輯器對象。在看到許多關於上述錯誤的博客後,我試圖以編程方式刪除TinyMce文本編輯器對象,然後觸發重定向。它工作!

1

我對IE9有這個確切的問題,事實上,它也發生在IE11中。

我的問題是,我通過http(即http://mywebsite.com)打開一個網站,我的代碼中的iframe試圖訪問使用https的網站的一部分。這是造成錯誤。一旦我使用https訪問網站,錯誤消失了。舊書籤是使用http的原因,並且網站已更新爲https,因此請檢查您的URL。