JavaScript代碼告訴瀏覽器或NodeJS是運行在瀏覽器中的最佳方式是什麼?如何判斷在瀏覽器中還是在NodeJS中運行?
我正在尋找將評估爲布爾值的東西。
試圖訪問window
並捕獲異常似乎相當混亂。有沒有更好的辦法?
JavaScript代碼告訴瀏覽器或NodeJS是運行在瀏覽器中的最佳方式是什麼?如何判斷在瀏覽器中還是在NodeJS中運行?
我正在尋找將評估爲布爾值的東西。
試圖訪問window
並捕獲異常似乎相當混亂。有沒有更好的辦法?
您可以使用UMD method的削減版本:
var isNode = (typeof exports === 'object') ? true: false;
var isNode = (typeof processs != 'undefined' && typeof process.versions != 'undefined' && typeof process.versions.node != 'undefined');
@BenFortune你是對的:更正。 – matteo 2014-11-04 15:53:24
也不例外參與; 'nodal =(typeof window ==='undefined');' – 2014-11-04 15:32:08
爲什麼不檢查process.version,它在節點中給出以下輸出:{http_parser:'1.0', node:'0.10.4', v8:'3.14.5.8', ares:'1.9.0-DEV', uv:'0.10.3', zlib:'1.2.3', modules:'11', openssl:'1.0。 1e'} – matteo 2014-11-04 15:34:24
下面是我們用於Node/AMD/Browser檢測的塊([link](https://github.com/geraintluff/tv4/blob/master/tv4.js#L10-L19)) - 而不是布爾值(有兩種以上的設置),它調用不同配置的初始化函數。 – cloudfeet 2014-11-04 15:34:35