2014-04-25 124 views
2

如何检查我是否在浏览器中运行此代码或不在浏览器中运行? 我有这样的事情如何检查我是否在浏览器中运行JavaScript代码或不在浏览器中运行?

var x = 5; 
if(/*inside a browser*/) document.write(x); 
else/*without a browser*/ console.log(x); 
+2

你究竟是什么意思的“内部浏览器”? – pennstatephil

+0

你还打算从哪里运行? – durbnpoisn

+0

Netbeans或Chrome,Firefox和IE等浏览器的控制台 – Pavel

回答

1
if (typeof(window) != 'undefined') { 
    //i am inside of browser environment 
} else { 
    //i am elsewhere (server?) 
} 
+0

如果未声明'window',则会抛出* ReferenceError *。你可以做'if(this.window){'而不是。 –

+0

@cookiemonster更正。 –

0
<script type="text/javascript"> 
    document.write("Welcome, you have Javascript on.") 
</script> 

<noscript>JavaScript is off. Please enable to view full site.</noscript> 
+2

我不认为这是OP的要求。 –

+2

我不确定这是否意图。 JavaScript可以在非浏览器环境中运行,如托管脚本环境,Rhino运行时,Node.js等。低级库可能需要检查它的位置。 – Katana314

1

这里是检测节点VS浏览器的方法:

var inside_browser = (typeof module === 'undefined'); 

如果你没有定义模块它将工作。

0

编辑:

比什么下文提到的简单的解决方案只是调用(this.window).

其他答案假设你是问有关服务器(如Node.js的)侧JS VS在浏览器中。然而,我最初的想法是,你正在问如何检测是否在JavaScript控制台中运行了某些东西。这里是我的方法:

(function(){ 

    var _z = console; 
    Object.defineProperty(window, "console", { 
    get : function(){ 
     if(_z._commandLineAPI){ 
     return true; 
      } 
     return false; 
    }, 
    set : function(val){ 
     _z = val; 
    } 
    }); 

})(); 

从你的目的修改为KSpace blog

相关问题