Bookmarklet не работает на Mozilla, но работает в Chrome - PullRequest
3 голосов
/ 12 марта 2011

я написал этот букмарклет

<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 голосов
/ 12 марта 2011

Это не работает, потому что FF ожидает перейти по ссылке куда-нибудь.Этот фрагмент кода работает

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

Но попробуйте сделать ваш код ненавязчивым. Это может помочь вам

0 голосов
/ 12 марта 2011

Вот шаги, которые я рекомендую для создания букмарклетов:

1. Поместите все в немедленно вызванную функцию

Вы можете использовать (function(){YOUR CODE}()); или (function(){YOUR CODE})();

2. Сократите код

Вы можете использовать онлайн-JavaScript-кодировщик

3. URL-кодирование

Вы можете использовать онлайн-кодировщик URL

В вашем случае это может быть что-то вроде этого:

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

кодируется как:

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

См. DEMO .

...