2013-07-25 8 views
1

동일한 JavaScript 파일을 사용하는 두 개의 웹 사이트가 있습니다. 하나는 Joomla 사이트이고 다른 하나는 해당 사이트의 레이아웃 사본입니다. 내가 줌라 사이트를 열면 그냥 잘 작동하지만 다른 사이트를 열 경우이 작업을 나던javascript getHeight가 함수가 아닙니다.

var header = document.getElementsByTagName("header")[0]; 
var headerHeight = header.getHeight(); 

:

은 자바 스크립트는 다음 두 줄이 포함되어 있습니다. 내 불을 지르고 콘솔은 다음과 같은 오류 제공 :

TypeError: header.getHeight is not a function 
    var headerHeight = header.getHeight(); 

내가 헤더를보고 내 불을 지르고의 스크립트 도구를 사용하고 거기 누락해야하는 모든 자바 스크립트 기능처럼 보인다.

누구에게이 문제의 해결책이 있습니까?

답변

2

.getHeight()이 JS 기본 방법은 아닙니다합니다. clientHeight 또는 offsetHeight DOM 요소의 기본 속성을 사용할 수 있습니다.

+0

그것도 작동하고 아마도 다른 하나보다 쉬운 솔루션입니다. – Eschon

0

그들은 아마도 HTMLElement이라는 프로토 타입을 보충하는 라이브러리를 사용하고 있습니다. 반대쪽에서는 그렇지 않습니다. 이것은 요즘 어쨌든 나쁜 습관으로 간주됩니다.

1

getHeight()은 DOM 요소의 표준 방법은 아니며 여기 (아마도) Prototype 메소드입니다. 당신은 prototype.js Joomla에 포함되어있을 수 있습니다 - 그것은 Joomla가 아닌 사이트에 없습니다. 수정이 당신의 js 파일과 함께 prototype.js에 포함 간단하게하는 것입니다 :

<script src="//ajax.googleapis.com/ajax/libs/prototype/1.7.1.0/prototype.js"></script> 
1

당신은 높이를 얻을이 시도 할 수 있습니다 :

var height = window.getComputedStyle(header)['height']; 
+0

고마워요. – Eschon

관련 문제