1

我有两个使用相同 JavaScript 文件的网站。一个是 Joomla 站点,另一个是该站点布局的副本。

JavaScript 包含以下两行:

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

如果我打开 Joomla 站点,它工作得很好,但如果我打开另一个站点,它就不起作用。我的萤火虫控制台给出了以下错误:

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

我使用我的萤火虫的脚本工具来查看标题,似乎所有应该存在的 javascript 函数都丢失了。

有没有人有这个问题的解决方案?

4

4 回答 4

2

.getHeight()不是 js 原生方法。您可以为 DOM 元素使用clientHeightoffsetHeight原生属性。

于 2013-07-25T08:42:32.017 回答
1

getHeight()不是 DOM 元素的标准方法,并且(很可能)是 Prototype 方法。虽然您可能已经prototype.js包含在 Joomla 中 - 它不在非 Joomla 网站上。解决方法是简单地prototype.js 与您的js 文件一起包含:

<script src="//ajax.googleapis.com/ajax/libs/prototype/1.7.1.0/prototype.js"></script>
于 2013-07-25T08:39:39.757 回答
1

你可以试试这个来获得高度:

var height = window.getComputedStyle(header)['height'];
于 2013-07-25T08:40:23.670 回答
0

他们可能正在使用一个扩展原型的库HTMLElement,而另一方没有。无论如何,这在当今被认为是不好的做法。

于 2013-07-25T08:38:39.517 回答