2013-03-08 3 views
5

나는이 작은 북마크를 가지고있다.북마크 렛의 innerHTML에 추가하는 것이 전체 페이지를 덮어 쓰는 이유는 무엇입니까?</p> <pre><code>javascript:document.getElementsByTagName("div")[0].innerHTML+="Chuck Norris"; </code></pre> <p>지금은 페이지 <code>div</code> 맨 처음을, 그리고 그것으로 척 노리스를 추가 할 수</em>을 가정 <em>분명히있다 :

대신 주소 표시 줄에 붙여 넣을 때 Chuck Norris가 페이지를 덮어 씁니다.

왜 이렇게됩니까?

참고 :이 내가 정확한 문제가 무엇인지 확실하지 않다

+0

JS 콘솔에 입력 할 때 Chrome/Win에서 말하는 내용을 수행하지 않습니다. (검색 주소창에 들어가는 것은 Omnibox 때문에 작동하지 않습니다.) – millimoose

+1

나는 이것이 왜 downvoted인지 잘 모르겠습니다. Chrome에서 나 대신 화면을 대체하고 있습니다. – Malk

+0

감사합니다, @millimoose ... Omnibox가이 작업을 수행 할 것이라는 사실을 알지 못했습니다 ... 왜 그런가요? – seanlevan

답변

5

조치를 취소하지 않습니다. void 0을 더한다; 끝내라.

javascript:document.getElementsByTagName("div")[0].innerHTML+="Chuck Norris";void 0; 
+1

분명히 따르도록 북마크릿에 대한 권장 사항이 많이 있습니다. http://subsimple.com/bookmarklets/rules.asp – millimoose

+0

void()가 필요한 이유는 무엇입니까? – seanlevan

+0

답변 해 주셔서 감사합니다! :) 그리고 무효와의 차이는 무엇이며 거짓을 반환합니까? – seanlevan

-1

... 사파리 발생하지 않습니다,하지만 그것은 textNode을 만들고이를 추가하여 작업있어 :

javascript:var d=document.getElementsByTagName("div")[0];var n=document.createTextNode("Chuck Norris");d.appendChild(n);