Javascript bookmarklet导致页面变为空白

Javascript bookmarklet causes page to go blank

本文关键字:空白 bookmarklet Javascript      更新时间:2023-09-26

我正在创建一个JavaScript bookmarklet来切换页面上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>中注入完全相同的代码时,它工作得很好。

这个问题有什么可能的解决办法吗?

它实际上隐藏了元素,但它也紧跟在你的锚点后面(不在任何地方)。您可以返回false或falsy值。我会把它包装在void中,它将返回undefined,但两者都可以。这是你的密码笔和密码: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>
getElementById('hideme');a.style

我想说是因为浏览器与您的变量名混淆了;

同样,代码是:

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