2013-04-03 2 views
0

Я пытаюсь добавить фиксированное количество пикселей к динамической высоте iframe. Как добавить статическое количество пикселей к моей высоте iframe? Я использую этот javascript для регулировки высоты iframe в соответствии с его содержанием:добавить пиксели к динамической высоте iframe

$(document).ready(function() 
{ 
    // Set specific variable to represent all iframe tags. 
    var iFrames = document.getElementsByTagName('iframe'); 

    // Resize heights. 
    function iResize() 
    { 
     // Iterate through all iframes in the page. 
     for (var i = 0, j = iFrames.length; i < j; i++) 
     { 
      // Set inline style to equal the body height of the iframed content. 
      iFrames[i].style.height = iFrames[i].contentWindow.document.body.offsetHeight + 'px'; 
     } 
    } 

    // Check if browser is Safari or Opera. 
    if ($.browser.safari || $.browser.opera) 
    { 
     // Start timer when loaded. 
     $('iframe').load(function() 
      { 
       setTimeout(iResize, 0); 
      } 
     ); 

     // Safari and Opera need a kick-start. 
     for (var i = 0, j = iFrames.length; i < j; i++) 
     { 
      var iSource = iFrames[i].src; 
      iFrames[i].src = ''; 
      iFrames[i].src = iSource; 
     } 
    } 
    else 
    { 
     // For other good browsers. 
     $('iframe').load(function() 
      { 
       // Set inline style to equal the body height of the iframed content. 
       this.style.height = this.contentWindow.document.body.offsetHeight + 'px'; 
      } 
     ); 

    } 
} 

);

Когда я добавляю, например, число «100» до «px», он просто ставит 100 рядом с текущей высотой iframe. Так что, если мой рост IFrame 200, высота будет 200100, если я использую это:

iFrames[i].style.height = iFrames[i].contentWindow.document.body.offsetHeight + '100px'; 

ответ

0

Когда я добавить, например, число «100» до «рх», он просто ставит 100 рядом с током высота iframe. Так что, если мой рост IFrame 200, высота будет 200100

Поскольку + является оператором конкатенации, а также нормальный «плюс» оператор, это происходит, когда вы уже в строковом контексте.

Попробуйте использовать parseInt на значение iFrames[i].contentWindow.document.body.offsetHeight, чтобы преобразовать его в число, так что следующий +добавляет 100 вместо конкатенации его:

iFrames[i].style.height = 
    (parseInt(iFrames[i].contentWindow.document.body.offsetHeight) + 100) + 'px'; 
+0

Спасибо, это сделал трюк! – user2240464

+0

@ user2240464 Но вы забыли отметить это как принято. –

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