2010-07-26 3 views
1

Я получил этот код метания ошибки из фрейма:Интернет исследователь Объект не поддерживает это свойство или метод

  function parentIframeResize() 
     { 
      var height = getParam('height'); 
      // This works as our parent's parent is on our domain.. 
      parent.parent.resizeIframe(height); 
     } 

Не озабоченных ошибок на всех. Проблема в том, что он не запускает другие скрипты. Firefox, хром или любой достойный браузер просто запускают остальные скрипты. Мне нужно подавить ошибку или убедиться, что parent.parent существует до запуска кода.

В php я бы написал что-то вроде if(!empty(parent.parent) { //do stuff with parent.parent }, чтобы проверить, существует ли объект.

Да, вложенные фреймы некрасиво O_o

ответ

2

Вы можете обернуть его в Try/поймать блока:

function parentIframeResize() { 
    try { 
     var height = getParam('height'); 
     parent.parent.resizeIframe(height); 
    } catch(err) { 
     // do something to recover from the problem, or nothing to suppress it 
    } 
} 
3

Try,

if (parent.parent && parent.parent.resizeIframe) { 
    // parent.parent exists and supports resizeIframe 
    parent.parent.resizeIframe(height); 
} 

Это должно сработать и остановить ошибки.

+3

Вы могли бы несколько упростить, имея если (parent.parent && parent.parent.resizeIframe) в одном выражении. – thomasrutter

+0

гораздо более элегантный, чем try/catch, esp с предложением thomasrutter. +1 для обоих –

Смежные вопросы