Javascript Bookmarklet在Mozilla上不起作用,但在chrome上起作用

Javascript Bookmarklet在Mozilla上不起作用,但在chrome上起作用,javascript,bookmarklet,getelementbyid,Javascript,Bookmarklet,Getelementbyid,我写了这个书签 <a href="javascript:var m = document.getElementById('xxx'); m.value=17;">test</a> 它可以在Chrome上运行,但不能在Mozilla Firefox上运行 我甚至试过 <a href="javascript:var m = document.getElementById('xxx'); m.value='17';">test</a> 但它也

我写了这个书签

<a href="javascript:var m = document.getElementById('xxx'); m.value=17;">test</a>

它可以在Chrome上运行,但不能在Mozilla Firefox上运行

我甚至试过

<a href="javascript:var m = document.getElementById('xxx'); m.value='17';">test</a>

但它也不起作用


我做错了什么?

以下是制作Bookmarklet的建议步骤:

1.将所有内容放在一个立即调用的函数中 您可以使用
(function(){YOUR code}())
(函数(){YOUR code})()

2.缩小你的代码 你可以使用

3.URL编码它 你可以使用

在您的情况下,可能是这样的:

(function(){m=document.getElementById('xxx');m.value=17}());
编码为:

(function()%7Bm%3Ddocument.getElementById('xxx')%3Bm.value%3D17%7D())%3B

请参阅。

它不起作用,因为FF希望跟踪链接到某个地方。这段代码有效

<a href="javascript:void(document.getElementById('xxx').value=17)">test</a>


<>但是考虑让你的代码不引人注目。可以帮你吗

我提供的解决方案对你有用吗?你不能真的拥有一个不引人注目的书签。所有代码都必须是
。不过,对于任何非bookmarklet JavaScript链接,这都是一个很好的建议。这与bookmarklet无关。通常情况下,代码更易于读取、维护和重用等。