Javascript bookmarklet导致页面变为空白

时间:2013-12-16 22:38:15

标签: javascript html bookmarklet

我正在创建一个JavaScript书签来切换页面上HTML元素的可见性,但似乎只是隐藏元素很麻烦:

http://codepen.io/anon/pen/HtkzL

代码:

<div id="hideme">
  <p>I am a div that needs to be hidden</p>
</div>

<p>I am a paragraph that doesn't need to be hid.</p>

<blockquote>
  I am a blockquote that the whole world must see
</blockquote>

<a href="javascript:var a=document.getElementById('hideme');a.style.display='none';">Click me to hide the div.</a>

发生的事情是点击每个锚点链接,整个页面变成空白并显示“无”。

当我在JS控制台的<a> ... </a>中注入完全相同的代码时,它可以正常工作。

对此问题有任何可能的解决方法吗?

2 个答案:

答案 0 :(得分:1)

它实际上是隐藏了元素,但它也跟随你的锚点(无处)。您可以返回false或false值。我将它包装在void中,它将返回undefined,但两者都可以。这是您的codepen和代码:http://codepen.io/anon/pen/dsgKk

<a href="javascript:void(function(){ var a = document.getElementById('hideme'); a.style.display='none'; })();">Click me to hide the div.</a>

(这也可以,但不太干净,imo):

<a href="javascript:var a=document.getElementById('hideme'); a.style.display='none'; return false;">Click me to hide the div.</a>

答案 1 :(得分:-1)

getElementById('hideme');a.style

我要说,因为浏览器与你的变量名混淆了;

此外,代码将是:

getElementById('hideme').style.display.....