2014-11-04 68 views
0

我的工作最近決定對VB的使用感到fr so不安,所以我不得不將所有舊代碼轉換爲Javascript(並且只有Javascript)。我已經成功地重新編譯了所有代碼,除了這一塊該調整大小以關閉顯示器高度的我的工具,我的代理使用:爲什麼我的window.onload代碼取消了我的其他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> 

有趣的是,該代碼工作..惱人的是,它取消了我所有的其他JavaScript在我的HTA和品牌我的按鈕完全沒用。如果我擺脫了這段特定的代碼,一切都很完美,我不明白這是如何或者爲什麼會導致這樣的問題。

我嘗試了多種不同的方式來嘗試使這個工作,但似乎無法解決它。我也嘗試在body標籤中使用body.onload,但即使這樣也會導致問題,因爲它會使我的HTA完全變爲空白。

任何幫助,將不勝感激!

謝謝大家的幫助,你所有的代碼都可以和resizer一起工作,但是它取消了我的其他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之前處理這個令人討厭的事情。

再次感謝大家的幫助!

+0

嗯,你沒有'window.onload'兩個不同的東西在那裏,你呢? – 2014-11-04 02:30:21

+1

將調整大小的代碼(不是放大縮小)放在'HTA'標籤前的'head'內。這樣你的應用程序打開已經調整大小,用戶根本不需要看到原始的窗口大小。 – Teemu 2014-11-04 06:03:16

+0

不,這是我唯一的window.onload函數。儘管Teemu,這是一個很好的提示,謝謝。 – 2014-11-05 00:24:40

回答

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事件。我無法解釋爲什麼分配指針和分配函數本身並不相同。

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> 
+0

我相信你是對的,但我嘗試了阿納金的代碼,並且無法按照他發佈的方式打破其他JS。我會有興趣看看他回報什麼。 – 2014-11-04 02:18:38

相關問題