이 코드를 브라우저에서 실행하는지 브라우저에서 실행하지 않는지 확인하는 방법은 무엇입니까? 나는이브라우저에서 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
처럼 뭔가를 여기에 브라우저 대 노드를 검출하는 방법이다 :
var inside_browser = (typeof module === 'undefined');
당신이 모듈을 정의하지 않으면 그것은 작동합니다.
편집 :
아래에 언급 된 것보다 간단한 해결책은 단지 호출 (this.window).
다른 답변은 브라우저에서 대 서버 (예를 Node.js를)에 대한 측면 JS를 요구하고 가정 하였다. 그러나, 나의 초기 아이디어는 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