문제

AFAIK, onclick에서 프로토콜을 지정할 필요가 없습니다.

onclick="javascript:myFunction()" 나쁜

onclick="myFunction()" 좋은

오늘 나는 이 기사 Google Analytics에서는 그들 그것을 사용하고 있습니다 :

<a href="http://www.example.com" onClick="javascript: pageTracker._trackPageview('/outgoing/example.com');">

이 예는 완전히 잘못된 것입니까, 아니면 지정해야 할 이유가 있습니까? javascript: 이외의 어떤 것에서 href?

도움이 되었습니까?

해결책

여기서의 일부 응답은 "JavaScript :"접두사는 "예전의 남은 음식"이며, 이는 의도적으로 브라우저가 역 호환성을 위해 처리한다는 것을 암시합니다. 이것이 사실이라는 확실한 증거가 있습니까 (소스 코드를 확인한 사람이 있습니까)?

<span onclick="javascript:alert(42)">Test</span>

나에게 이것은 단지 다음과 같이 읽습니다.

javascript:
    alert(42);

즉, "JavaScript :"는 레이블 일뿐 아니라 영향을 미치지 않습니다. 이것도 작동합니다 :

<span onclick="foobar:alert(42)">Test</span>

업데이트:

나는 약간의 실험을했는데, "JavaScript :"JavaScript : "IE에 의해 특별히 처리되지만 Firefox, Safari, Opera 또는 Chrome은 그렇지 않습니다.

<span onclick="javascript:while (true) { alert('once'); break javascript; }">Test</span>

Nonie에서는 "한 번", 한 번은 경고 한 다음 루프에서 나옵니다. 즉, "레이블이없는"오류가 발생합니다. 다음은 모든 브라우저에서 잘 작동합니다.

<span onclick="foo:while (true) { alert('once'); break foo; }">Test</span>

Update 2:

방금 링크를 깨달았습니다 http://crisp.tweakblogs.net/blog/the-useless-javascript-pseudo-protocol.html 위의 답변 중 하나에서 같은 것에 대해 거의 이야기합니다.

다른 팁

앵커에는 결코 필요하지 않으며 좋은 연습이 아닙니다. 앵커는 탐색 만용입니다. 이 주제에 대한 기사는 다음과 같습니다 쓸모없는 JavaScript : 의사 프로토콜.

처음에는 사용할 수도 있습니다 vbscript JavaScript 대신 Internet Explorer에서 "JavaScript : ..."을 지정하는 것은 표준이었습니다.

오늘은 아프지 않습니다 ... 앞으로 항상 다른 Wannabe 브라우저 스크립팅 언어가있을 수 있습니다.

보다 스크립팅 언어 지정 (18.2.2 인치 HTML 4.01 사양, 스크립트).

나는 항상 당신이 URL 이랑 javascript: 접두사:

<a href="javascript:void(alert('really bad usage!'))">

(웹 양식, 누구?)

그리고 이벤트 선언과 Href-Declaration의 차이를 깨닫지 못한 무지한 웹 개발자만이 그것을 사용했습니다.

나는 오늘날 대부분의 경우 이벤트 속성조차도 나쁜 관행이며, 이벤트를 좋아하는 선호하는 방법은 .attachevent (Internet Explorer) 및 addeventListener (평소와 같이 브라우저의 나머지 부분)를 사용하는 것입니다.

그리고 마지막으로 ... Google이 항상 전능하신 것은 아닙니다. 그들은 항상 표준을 따르는 대신에 물건이 작동하는 것이 더 우려되는 경향이 있습니다.

내 생각에 "javascript:" 접두사는 여전히 모호한 가능성이 있었던 옛날의 남은 것입니다. 다른 것 JavaScript가 이벤트를 처리할 수 있는 것보다

현재는 선택 사항이며 이전 버전과의 호환성을 위해 유지됩니다.하지만 난 그런 말은 안 할 거야 나쁜 따라서 그것은 불필요합니다.

Internet Explorer에서는 기본 언어를 다음으로 설정할 수 있습니다. vbscript 페이지의 경우. 초기에는 다른 언어가 브라우저에서 스크립팅하는 데 사용될 수 있다는 아이디어가 항상있었습니다. 결과적으로, 그러한 언어는 실질적인 형태로 구체화되지 않았습니다.

나는이 언어 접두사를 신경 쓰지 않습니다.

유지 보수 프로그래머에게는 우수한 관행입니다. 컴파일러는 그 차이를 알고 있지만, 그 차이는 어리석은 대학 웹 개발자가 그렇지 않을 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top