为什么我的window.onload代码取消了我的其他JavaScript?

时间:2014-11-04 01:48:40

标签: javascript resize window onload hta

我的工作最近决定对VB的使用不屑一顾,所以我被迫将我的所有旧代码转换为Javascript(并且只有Javascript)..我已经成功地重新编译了所有这些代码,除了这个根据我的代理使用的显示器高度调整工具大小的部分:

              <script type="text/javascript">
    window.onload = function resizePage() {
    if (screen.height>=900)
    {
    window.resizeTo(455,820);
    document.body.style.zoom="110%";
    }
    else
    {
    window.resizeTo(395,720)
    }
    }
    </script>

有趣的是代码有效..令人讨厌的是它取消了我HTA中的所有其他javascript并使我的按钮完全无用。如果我摆脱这段特定的代码,一切都很完美,我不明白这是怎么或为什么会导致这样的问题。

我尝试了多种不同的方法来尝试让它工作,但似乎无法解决它。我也尝试在body标签中使用body.onload,但即使这会导致问题,因为它会让我的HTA完全空白。

对此的任何帮助将不胜感激!

感谢大家的帮助,你的所有代码都与调整器配合使用,但它取消了我的其他javascript也做了同样的事情。我想出了答案,但我对如何或为何如此有效感到困惑。我不认为这会对将来的任何人有所帮助,但如果有人对此结果感兴趣,我会发布。

我把它作为我的主要档案来实现:

<script language="VBScript">

</script>

<script type="text/javascript">
window.onload= function(){
if (screen.height>=900)
{
document.body.style.zoom="110%";
}
}
</script>

并在我的外部.js文件中:

if (screen.height>=900)
{
window.resizeTo(455,820);
}
else
{
window.resizeTo(395,720)
}

完全让我感到困惑的是,如果我删除我的VB绝对不会导致我的所有Javascript再次破坏。这让我大吃一惊,我想我将不得不处理这个恼人的作品,直到我完全重拍我的HTA。

再次感谢大家的帮助!

2 个答案:

答案 0 :(得分:0)

试试这个:

<script type="text/javascript">
window.onload = function () {
if (screen.height>=900)
{
window.resizeTo(455,820);
document.body.style.zoom="110%";
}
else
{
window.resizeTo(395,720)
}
}
</script>

或者这个:

<script type="text/javascript">
function resizePage() {
if (screen.height>=900)
{
window.resizeTo(455,820);
document.body.style.zoom="110%";
}
else
{
window.resizeTo(395,720)
}
}
window.onload = resizePage;
</script>

您的代码将一个命名的函数对象分配给onload事件。如果我对JavaScript有更多了解,我可能会解释为什么它不起作用。

在我的第一个例子中,为onload事件分配了一个匿名函数,这是有效的。在第二个示例中,指向命名函数的指针被分配给onload事件。我无法解释为什么分配指针和分配函数本身并不等效。

答案 1 :(得分:0)

我认为使用onload时出错。尝试在window.onload之后删除函数名称,并执行以下操作:

<script type="text/javascript">
   window.onload = function() {
     if (screen.height>=900)
     {
       window.resizeTo(455,820);
       document.body.style.zoom="110%";
     }
     else
     {
       window.resizeTo(395,720)
     }
   }
</script>