Bookmarklet不适用于Mozilla,但适用于Chrome

时间:2011-03-12 10:38:40

标签: 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>

但它也不起作用

我做错了什么?

2 个答案:

答案 0 :(得分:0)

以下是我建议制作bookmarklet的步骤:

1。将所有内容放入一个立即调用的函数

您可以使用(function(){YOUR CODE}());(function(){YOUR CODE})();

2。缩小代码

您可以使用online JavaScript uglifier

3。对URL进行编码

您可以使用online URL-encoder

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

(function(){m=document.getElementById('xxx');m.value=17}());

编码为:

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

请参阅DEMO

答案 1 :(得分:0)

它不起作用,因为FF希望跟随到某个地方的链接。这段代码可以工作

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

但请考虑让您的代码不引人注目。 This可以帮助您