2013-04-23 60 views
0

我在IE7中遇到了Meteor應用程序的大量問題。這可能是由於至少有一個Meteorite軟件包(尤其是我懷疑的路由器,它特別不支持IE7)。我收到了幾個JavaScript錯誤,並且空白頁面加載了一個空標籤。在流星之前立即執行JS

IE7 bug隻影響1%的用戶,但我只是討厭這個想法,一些人會訪問該網站,看到一個空白頁面,沒有別的,並認爲這是一個糟糕的或傍晚的項目。

我試圖展示一個簡短的頁面,我已經寫了解釋IE7和更低版本不被支持,用戶可以升級她的瀏覽器或使用Chrome框架。如果您點擊<myapp>/noie.html,您可以看到它,因爲它保存在public/文件夾中。

但是,在應用程序的其他部分崩潰之前,我找不到任何重定向到該頁面的方式,所以我的重定向代碼從不運行(無論如何,它在我的機器上運行)。我試過把它放在lib/的文件中,我試過用Meteor.startup() *,我同時做過兩個!但最終當你在瀏覽器中點擊網址時,Meteor開始採取行動,開始加載依賴關係,並沿着線路的某個地方,這一切都打破了。

如果我只能讓重定向代碼成爲第一個可以運行的東西之一,那麼一切都會好起來的。

*這似乎是從client_startup.js調用的,它在這樣做之前專門等待DOM準備就緒。在獲取我的代碼之前,它會進行路由,呈現模板等,這對我來說已經太遲了。

回答

0

我想我正在做什麼的想法。您可以通過單擊Meteor頁面上的「查看源代碼」(在開發模式下提供)來查看腳本以何種順序加載。一般來說,它似乎走:

1)流星自己的包

2)你的包,即那些在smart.json

3)已經傳遞到Meteor.startup功能上市()在某處您的.js/.coffee文件

4)你的.js/.coffee文件的剩餘部分,在一個序列Structuring Your App

下記錄的最關鍵的是對我來說,的順序0文件和產生的.meteor/packages文件似乎確定了什麼order the packages get loaded以及。

我的計劃是現在寫我自己的小智能包檢測IE7或更低,並做一個重定向。我會把它放在packages作爲第一項,所以它會在Router或其他任何可能導致應用程序崩潰的IE7上運行。將更新以說明是否可行。

更新:它的工作!我在大氣上有published the package,就這麼簡單。