자바 스크립트를 북마크 나 북마크릿으로 바꾸시겠습니까?


4

눈 클릭시 Windows 8과 마찬가지로 호버에서 암호를 표시하는 하나의 스크립트를 만들었습니다.

다음 코드와 함께 JavaScript를 통해이 기능을 만들었습니다.

function text(){this.type="text"}function password(){this.type="password"}function addHandlers(){var e=false;var t=document.evaluate("//input[@type='password']",document,null,6,null);for(var n=t.snapshotLength-1,r;r=t.snapshotItem(n);n--){if(!e){r.addEventListener("mouseover",text,false);r.addEventListener("mouseout",password,false)}else{r.addEventListener("focus",text,false);r.addEventListener("blur",password,false)}}}addHandlers()

압축 된 JavaScript 코드에 대해 죄송하지만 thiss 스크립트를 실행하는 책갈피 또는 bookmarklet을 작성하고 싶습니다 ...

나는 시도했다 :

javascript:(mycode);

그러나 그것은 작동하지 않았습니다 ...


북마크는 매우 구체적이지 않습니다. 북마크 / 북마크릿과 같은 것을 알고있는 프로그램이 둘 이상 있습니다. 물론 브라우저를 의미하는 것 같습니다. Firefox, IE, Opera 등이 있습니까?
humanandANDpeace

답변:


6

특정 문제를 해결하기 위해이 버전에서 오류없이 JavaScript 코드를 실행할 수있었습니다.

javascript:(function(){function text(){this.type="text"};function password(){this.type="password"};function addHandlers(){var e=false;var t=document.evaluate("//input[@type='password']",document,null,6,null);for(var n=t.snapshotLength-1,r;r=t.snapshotItem(n);n--){if(!e){r.addEventListener("mouseover",text,false);r.addEventListener("mouseout",password,false)}else{r.addEventListener("focus",text,false);r.addEventListener("blur",password,false)}}};addHandlers();alert("bookmarklet loaded");})();

코드가 작동하는지 확인하기 alert("bookmarklet loaded");위해 북마크릿 끝에를 추가했습니다 . Firefox 17에서 테스트 했으므로 메시지 상자가 표시됩니다. 코드가 작동하거나 작동하지 않으면 말할 수 없지만 물론 문제는 아닙니다.

<script></script>북마크에 쉽게 적용 할 수 있는 태그 내에서 JavaScript 코드 변환을 염두에 두어야 할 사항이 있습니다.

  • 일반 JavaScript 코드에서 줄 바꿈은 두 명령을 분리 할 수 ​​있습니다. 북마크릿은 한 줄에 있으므로 줄 바꿈을 세미콜론으로 대체하십시오 . .

여기 예

예를 들어 봅시다. 두 가지 명령어가있는 두 개의 소스 코드 스 니펫을 만들어 봅시다.

var anumber=1
var atext="hallo"

한 줄에 모두 넣으면 (= 공백을 줄 바꿈) 먼저 다음과 같이 끝납니다.

var anumber=1 var atext="hallo"

더 이상 유효한 JavaScript 코드가 아닙니다. 두 명령어를 한 줄에 결합하려면 다음과 같이 세미콜론을 사용하여 두 명령어를 분리 / 구분해야합니다.

var anumber=1; var atext="hallo"
  • 이런 종류의 클로저로 코드를 모두 감싸십시오.
    javascript:(function(){ [...here your code...] })();

솔루션을 조사 할 웹 사이트가 꽤 있습니다. 여기 처럼 .


일반 자바 스크립트 코드에서 줄 바꿈은 두 명령을 분리 할 수 ​​있습니다. 북마크릿은 한 줄에 있으므로 줄 바꿈을 세미콜론으로 대체하십시오. 그것은 무엇을 의미합니까? 더 정교하게 할 수 있습니까 ??
이씨

2
세미콜론을 항상 삽입하는 것이 좋지만 여기에서 자세히 읽을 수 있습니다 .
Karan

3

당신은 실제로 아주 가깝습니다. 다음과 같이하면됩니다.

javascript:(function(){mycode})();

당신의 예에서, 당신은 이것을 시도 할 수 있습니다 :

javascript:(function(){function text(){this.type="text"};function password(){this.type="password"};function addHandlers(){var e=false;var t=document.evaluate("//input[@type='password']",document,null,6,null);for(var n=t.snapshotLength-1,r;r=t.snapshotItem(n);n--){if(!e){r.addEventListener("mouseover",text,false);r.addEventListener("mouseout",password,false)}else{r.addEventListener("focus",text,false);r.addEventListener("blur",password,false)}}};addHandlers()})();

코드를 축소 할 때 세미콜론에주의하십시오. 일부 코드가 누락되었습니다.


추신 : 내 답변을 게시 한 후 코드를 사용해 보았습니다. 유용한 트릭,이 책갈피를 저장했습니다
Kar.ma
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.