如何检查我是否在浏览器中运行此代码或不在浏览器中运行? 我有这样的事情如何检查我是否在浏览器中运行JavaScript代码或不在浏览器中运行?
var x = 5;
if(/*inside a browser*/) document.write(x);
else/*without a browser*/ console.log(x);
如何检查我是否在浏览器中运行此代码或不在浏览器中运行? 我有这样的事情如何检查我是否在浏览器中运行JavaScript代码或不在浏览器中运行?
var x = 5;
if(/*inside a browser*/) document.write(x);
else/*without a browser*/ console.log(x);
if (typeof(window) != 'undefined') {
//i am inside of browser environment
} else {
//i am elsewhere (server?)
}
如果未声明'window',则会抛出* ReferenceError *。你可以做'if(this.window){'而不是。 –
@cookiemonster更正。 –
<script type="text/javascript">
document.write("Welcome, you have Javascript on.")
</script>
<noscript>JavaScript is off. Please enable to view full site.</noscript>
我不认为这是OP的要求。 –
我不确定这是否意图。 JavaScript可以在非浏览器环境中运行,如托管脚本环境,Rhino运行时,Node.js等。低级库可能需要检查它的位置。 – Katana314
这里是检测节点VS浏览器的方法:
var inside_browser = (typeof module === 'undefined');
如果你没有定义模块它将工作。
编辑:
比什么下文提到的简单的解决方案只是调用(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。
你究竟是什么意思的“内部浏览器”? – pennstatephil
你还打算从哪里运行? – durbnpoisn
Netbeans或Chrome,Firefox和IE等浏览器的控制台 – Pavel