كيفية حل مشكلة Error: Permission denied to access property x في الجافاسكربت
ما هو Permission denied وسبب ظهوره
يحظر السكربت الذي تقوم بصنعه في حالة انك تريد ان تعالج بيانات من دومين اخر عن طريق iframe tag او من خلال اي object اخر وهذه العملية تسمي ب cross-origin object وبالطبع مثل جوجل او ويكيبيديا لا يمكنك ان تقوم بعمل استخراج بينات البحث عن طريق فتح علامة تبويب اخري عن طريق popup ولا يمكنك ان تستخدم هذه الفكرة حتي لو كنت بتستخدم جوجل او ويكيبيديا في صفحتك علي اساس iframe.
كيفية معالجة الخطأ واستمرار البرنامج
سوف اعرض عليكم كود يوضح كيف تستخدم السكربت الخاص بك بدون توقف حتي ولو تم حظر ذحفك علي الموقع الاخر يستمر في وظائفه بشكل طبيعي .
<iframe id="myframe" src="https://en.wikipedia.org"></iframe>
<script>
try {
console.log(document.getElementById("myframe").document);
// OR
console.log(frames[0].document);
} catch (e) {
if (e.message.toLowerCase().indexOf('permission denied') == 0) {
printError(e, true);
} else {
printError(e, false);
}
}
</script>
Post a Comment