HTML script 태그에 인라인으로 작성된 js를 디버깅하는 방법
9767 단어 Chrome디버깅자바스크립트ChromeDevTool
소개
HTML script 태그 내에 인라인으로 작성된 js를 디버깅하는 방법을 공유합니다
본래라면 외부 파일로서 *.js
에 해야 합니다만, 이유가 있어<script>
태그 내에 js 가 쓰여져 있는 경우에 유효합니다!
이 방법은 script
태그로 둘러싸인 js를,
마치 외부 파일의 js로 취급 할 수 있습니다
해보자
예를 들어, 다음과 같은 html이 있다고 가정합니다.
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Qiita</title>
</head>
<body>
<div id="hello">Hello World!</div>
<script>
document.querySelector('#hello').addEventListener('click', function(e) {
alert(this.innerHTML);
}, false);
</script>
</body>
</html>
Hello World!
를 클릭하면 경고에 Hello World!
가 표시됩니다.
script
태그 끝에 //# sourceURL=foobar.js
를 씁니다.
<script>
document.querySelector('#hello').addEventListener('click', function(e) {
alert(this.innerHTML);
}, false);
+ //# sourceURL=hello-world.js
</script>
이 사이트에서 Run
를 클릭하십시오.
그러면 개발자 도구로 hello-world.js
로로드 할 수 있습니다!
이제 직접 js
편집이 가능합니다. Ctrl + S
로 저장하면 즉시 적용됩니다.
응용편
sourceURL을 고안하고 쓰자.
sourceURL
는 다음과 같이 쓸 수도 있습니다.
//# sourceURL=http://foo/bar/foobar.js
예를 들어, 다음과 같은 html이 있다고 가정합니다.
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Qiita</title>
</head>
<body>
<div id="one">one</div>
<div id="two">two</div>
<div id="three">three</div>
<script>
document.querySelector('#one').addEventListener('click', function(e) {
alert(this.innerHTML);
}, false);
//# sourceURL=http://foobar/script/one.js
</script>
<script>
document.querySelector('#two').addEventListener('click', function(e) {
alert(this.innerHTML);
}, false);
//# sourceURL=http://foobar/script/two.js
</script>
<script>
var src = "document.querySelector('#three').addEventListener('click', function(e) {" +
" alert(this.innerHTML);" +
" }, false);" +
"//# sourceURL=http://foobar/eval/three.js"
eval(src);
</script>
</body>
</html>
이 경우는 다음과 같이 디렉토리 구조로 인식됩니다.
이 사이트에서 시도할 수 있습니다.
개발자 도구 콘솔에서도 사용할 수 있습니다!
이런 사용법도 할 수 있다는 소개입니다.
개발자 도구 콘솔에서 다음 스크립트를 실행해 보십시오.
alert(1); //# sourceURL=alert.js
alert.js
가 제대로 인식 되었습니까? 중단점도 작동합니다.
※ 직접적인 파일 편집은 Inspected target disconnected
가 되어 잘 할 수 없었습니다.
요약
예를 들어, 다음과 같은 html이 있다고 가정합니다.
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Qiita</title>
</head>
<body>
<div id="hello">Hello World!</div>
<script>
document.querySelector('#hello').addEventListener('click', function(e) {
alert(this.innerHTML);
}, false);
</script>
</body>
</html>
Hello World!
를 클릭하면 경고에 Hello World!
가 표시됩니다.script
태그 끝에 //# sourceURL=foobar.js
를 씁니다.<script>
document.querySelector('#hello').addEventListener('click', function(e) {
alert(this.innerHTML);
}, false);
+ //# sourceURL=hello-world.js
</script>
이 사이트에서
Run
를 클릭하십시오.그러면 개발자 도구로
hello-world.js
로로드 할 수 있습니다! 이제 직접
js
편집이 가능합니다. Ctrl + S
로 저장하면 즉시 적용됩니다.응용편
sourceURL을 고안하고 쓰자.
sourceURL
는 다음과 같이 쓸 수도 있습니다.
//# sourceURL=http://foo/bar/foobar.js
예를 들어, 다음과 같은 html이 있다고 가정합니다.
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Qiita</title>
</head>
<body>
<div id="one">one</div>
<div id="two">two</div>
<div id="three">three</div>
<script>
document.querySelector('#one').addEventListener('click', function(e) {
alert(this.innerHTML);
}, false);
//# sourceURL=http://foobar/script/one.js
</script>
<script>
document.querySelector('#two').addEventListener('click', function(e) {
alert(this.innerHTML);
}, false);
//# sourceURL=http://foobar/script/two.js
</script>
<script>
var src = "document.querySelector('#three').addEventListener('click', function(e) {" +
" alert(this.innerHTML);" +
" }, false);" +
"//# sourceURL=http://foobar/eval/three.js"
eval(src);
</script>
</body>
</html>
이 경우는 다음과 같이 디렉토리 구조로 인식됩니다.
이 사이트에서 시도할 수 있습니다.
개발자 도구 콘솔에서도 사용할 수 있습니다!
이런 사용법도 할 수 있다는 소개입니다.
개발자 도구 콘솔에서 다음 스크립트를 실행해 보십시오.
alert(1); //# sourceURL=alert.js
alert.js
가 제대로 인식 되었습니까? 중단점도 작동합니다.
※ 직접적인 파일 편집은 Inspected target disconnected
가 되어 잘 할 수 없었습니다.
요약
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Qiita</title>
</head>
<body>
<div id="one">one</div>
<div id="two">two</div>
<div id="three">three</div>
<script>
document.querySelector('#one').addEventListener('click', function(e) {
alert(this.innerHTML);
}, false);
//# sourceURL=http://foobar/script/one.js
</script>
<script>
document.querySelector('#two').addEventListener('click', function(e) {
alert(this.innerHTML);
}, false);
//# sourceURL=http://foobar/script/two.js
</script>
<script>
var src = "document.querySelector('#three').addEventListener('click', function(e) {" +
" alert(this.innerHTML);" +
" }, false);" +
"//# sourceURL=http://foobar/eval/three.js"
eval(src);
</script>
</body>
</html>
alert(1); //# sourceURL=alert.js
script
태그에 둘러싸인 인라인인 js 도 외부 파일의 js 와 같이 취급할 수 있도록(듯이) 할 수 있다. script
태그의 사이고에 //# sourceURL=foobar.js
라고 쓸 뿐. //# sourceURL=http://foo/bar.js
뭐라고 쓰는 방법도 할 수 있다. eval('alert(1); //# sourceURL=alert.js');
와 같은 사용법도 할 수 있다. 편리하므로 꼭 시험해보십시오
Reference
이 문제에 관하여(HTML script 태그에 인라인으로 작성된 js를 디버깅하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/madobon/items/cf1a22b7960840bb1a65텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)