SCRIPT70: การอนุญาตถูกปฏิเสธ IE9

ฉันได้รับข้อผิดพลาดแปลก ๆ "SCRIPT70: Permission denied jquery.js, line 21 character 67" ใน IE-9 ค้นหาใน Google แต่ไม่พบสิ่งใดนอกจากข้อบกพร่องใน CKEditor

ตำแหน่งที่แสดงมีดังต่อไปนี้:

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 นี้

ขอบคุณ.


person mehmet6parmak    schedule 18.03.2011    source แหล่งที่มา
comment
คุณต้องทำซ้ำด้วยเวอร์ชันที่ไม่ย่อเล็กสุดเพื่อให้คุณเห็นบรรทัดโค้ดที่ทำให้เกิดเวอร์ชันดังกล่าว   -  person ThiefMaster    schedule 18.03.2011
comment
เพิ่งรู้ว่ามันไม่อนุญาตไฟล์สคริปต์ใดๆ ฉันเห็นบรรทัดที่ค่อนข้างง่ายในไฟล์ js ที่ไม่ย่อเล็กสุด var imageType = jQuery(#imageType).val(); เราเปิด iframe แล้วลองเรียกใช้ javascript ภายใน อาจเป็นเพราะสาเหตุนี้หรือไม่   -  person mehmet6parmak    schedule 18.03.2011


คำตอบ (9)


ข้อผิดพลาด SCRIPT70 ใน IE9 เกิดขึ้นได้บ่อยที่สุดเมื่อ iframe ของคุณเรียกใช้จาวาสคริปต์บางตัว (โดยเฉพาะอย่างยิ่งหากส่งผลกระทบต่อหน้าหลัก - เช่น การเปลี่ยนแปลงแฮชของ URL หลัก)

ตรวจสอบว่าหมายเลขโฮสต์/โปรโตคอล/พอร์ตของ iframe ตรงกัน IE9 มีความเข้มงวดเป็นพิเศษเกี่ยวกับชื่อโฮสต์ (จนถึงส่วน www ในกรณีของฉัน) และ document.domain ดูเหมือนจะไม่มีวิธีแก้ปัญหาสำหรับเรื่องนั้น

พบปัญหานี้และแก้ไขในขณะที่จัดการกับ iframe หลายอัน หวังว่านี่จะช่วยผู้อื่นที่มีปัญหาเดียวกันได้

person Timothy    schedule 06.05.2012
comment
ฉันได้รับสิ่งนี้ด้วย window.postMessage จาก iFrame ไปยังโดเมนต้นทางข้ามหลักบน IE11 ด้วย Edge Browser มันทำงานได้ดี ใครช่วยอธิบายหมายเลขโฮสต์ / โปรโตคอล / พอร์ตให้ละเอียดยิ่งขึ้นได้ไหม - person user2568374; 27.05.2018

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/

person kamau wairegi    schedule 08.09.2014
comment
คุณควรเพิ่มข้อความอธิบายในคำตอบของคุณ นอกจากนี้ฉันไม่เห็นว่า jsfiddle ของคุณแสดงให้เห็นสิ่งใดเลย - person Peter Sorowka; 08.09.2014
comment
คุณต้องแก้ไข jquery-*.js ของคุณและเพิ่ม try catch ภายในฟังก์ชันเสียงดังฉ่า (ฟังก์ชันที่ทำให้การเข้าถึงถูกปฏิเสธ) ฉันไม่ชอบเล่นไฟล์ jquery แต่มันช่วยแก้ปัญหาได้ - person David; 27.08.2015

ฉันประสบปัญหานี้กับ IE9 จริงๆ และจริงๆ แล้วมันก็เกิดขึ้นกับ IE11 ด้วยเช่นกัน

ปัญหาของฉันคือฉันกำลังเปิดเว็บไซต์ผ่าน http (เช่น http://mywebsite.com) และ iframe ภายในโค้ดของฉันคือ พยายามเข้าถึงส่วนหนึ่งของเว็บไซต์โดยใช้ https สิ่งนี้ทำให้เกิดข้อผิดพลาด เมื่อฉันเข้าถึงเว็บไซต์โดยใช้ https ข้อผิดพลาดก็หายไป บุ๊กมาร์กเก่าเป็นสาเหตุของการใช้ http และไซต์ได้รับการอัปเดตด้วย https ดังนั้น โปรดตรวจสอบ URL ของคุณ

person Flea    schedule 01.06.2016

คุณไม่สามารถเข้าถึงเนื้อหาใดๆ ใน iframe ของคุณได้ หากเนื้อหานั้นชี้ไปยังโดเมนอื่นที่ไม่ใช่ไซต์แม่

person ThiefMaster    schedule 18.03.2011

หากคุณกำลังจัดการกับองค์ประกอบที่เลือกในสคริปต์ของคุณ บางทีปัญหาของคุณก็เหมือนกับของฉัน

SCRIPT70: การอนุญาตถูกปฏิเสธเมื่อเพิ่มตัวเลือก เลือกองค์ประกอบจาก iframe ที่เพิ่งปิด

person Lucas Ayala    schedule 04.03.2014

ล่าสุดฉันพบข้อผิดพลาดนี้ ในแอปพลิเคชันที่ฉันใช้งานอยู่ ฉันใช้ โปรแกรมแก้ไขข้อความ TinyMce สำหรับผู้แต่งอีเมลของเรา ซึ่งจะสร้าง iframe ซึ่งมีออบเจ็กต์ที่ฉันต้องการสำหรับผู้แต่งอีเมล หลังจากเห็นบล็อกจำนวนมากเกี่ยวกับข้อผิดพลาดดังกล่าว ฉันพยายามลบออบเจ็กต์ตัวแก้ไขข้อความ TinyMce โดยทางโปรแกรม จากนั้นจึงทริกเกอร์การเปลี่ยนเส้นทาง และมันก็ได้ผล!

person Marc De Joya    schedule 12.03.2015

ประสบปัญหาที่คล้ายกัน (อาจไม่ใช่กับ jquery.js แต่มีคำอธิบายข้อผิดพลาดเดียวกัน) วิธีแก้ไขแตกต่างจากด้านบนเล็กน้อย จริงๆ แล้วฉันได้ค้นหาบรรทัด iexplore.exe อื่นๆ ใน regedit แล้ว ฉันพบอีกสองตัวแล้วเปลี่ยนเป็น 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
person makriria    schedule 29.05.2013

หากคุณใช้ระบบปฏิบัติการ 64 บิต ตรวจสอบให้แน่ใจว่าค่าของคีย์นี้ตั้งค่าเป็น 1: HKEY_LOCAL_MACHINE\SOFTWARE\**Wow6432Node**\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_OBJECT_CACHING\\iexplore.exe

หากไม่มีคีย์นี้ เรามีข้อผิดพลาด SCRIPT70: Permission denied แบบสุ่มใน Internet Explorer 11

person AgileArchitect    schedule 18.02.2014

เคล็ดลับจากหน้านี้น่าจะช่วยได้: http://forum.jquery.com/topic/strange-behaviour-in-ie9

ตรวจสอบให้แน่ใจว่า HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_OBJECT_CACHING\iexplore.exe ไม่ได้ตั้งค่าเป็น 0 (ควรเป็น 1 หรือหายไป)

person meloniq    schedule 17.10.2012
comment
เอ่อ พวกเขาคาดหวังให้ฉันบอกเรื่องนี้กับผู้ใช้ IE9 ทุกคนที่เข้าชมเว็บไซต์สาธารณะของฉันจริงๆ เหรอ? - person Marcel Stör; 30.10.2013
comment
นี่เป็นความคิดที่แย่ที่สุดเลยทีเดียว คุณไม่สามารถคาดหวังให้ฉันบอกผู้ใช้ 30 ล้านคนของฉันให้เปลี่ยนรีจิสทรีได้ คุณจริงจังไหม? - person Ryan; 24.06.2014