سؤال

لدي وظيفة JS التي استطلاعات الرأي حول عنوان URL الحالي في IFRAME، والغرض من التأكد مما إذا كان iFrame يشير إلى نفس الموقع كوثيقة كوثيقة. على هذا النحو، فإن القانون هو أساسا:

function urlCheck()
{
  var location = document.getElementById('frameid').contentWindow.location.href;
  if (location)
  {
    // iframe src is currently local
  }
  else
  {
    // iframe src is currently not local
  }
}

وظيفيا، يعمل هذا الرمز تماما. ومع ذلك، في وحدة التحكم في الخطأ، في كل مرة يتم فيها استدعاء هذه الوظيفة ولم يكن IFRAME SRC محليا، أحصل على خطأ:

تم رفض إذن [Site1] للحصول على موقع العقارات. Href من [الموقع 2

كيف يمكنني إصلاح التعليمات البرمجية لتجنب هذه الأخطاء؟

شكرا، مالا

هل كانت مفيدة؟

المحلول

لف التعليمات البرمجية الخاصة بك في جرب الصيد يجب أن تكون كتلة قادرة على التقاط هذه الأخطاء والتعامل معها.

نصائح أخرى

في الواقع، رسالة الخطأ هي المعلومات التي تريدها: بمجرد أن يشير عنوان URL الخاص ب iFrame إلى مجال مختلف، تحصل على أخطاء إذن. هذا تدبير السلامة لتجنب هجمات XSS.

عدل] هذا يعني أنه يمكنك استبدال التعليمات البرمجية أعلاه مع:

function urlCheck()
{
  try
  {
    document.getElementById('frameid').contentWindow.location.href;

    // iframe src is currently local
  }
  catch (e)
  {
    // iframe src is currently not local
  }
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top