dllweb
@dllweb

Как выполнить код в букмарклете javascript и не перезаписать содержимое страницы?

Имеется функция в расширении, которая должна в свою очередь обратиться к значениям переменных на текущей странице, пытаюсь выполнить это через букмарклет
var value_var = javascript:somevar.valuestring;
ну естественно чтобы это сработало и присвоилось к переменной нужно выполнить это в текущем контексте, то есть всё тоже самое только
var value_var = location.href = javascript:somevar.valuestring;

Но в итоге проблема следующая, страница переписывается полностью и всё её содержимое заменяется значением somevar.valuestring. Что посоветуете делать?
  • Вопрос задан
  • 133 просмотра
Пригласить эксперта
Ответы на вопрос 1
riky
@riky
Laravel
часто использую букмарклеты, удобная и простая штука, можно удобно размещать в закладках, и накидать за 5 минут если чтото надо.
я делаю так:
javascript:(function (){ /* CODE */ })()

это мой старый букмарклет который показывает "скрытые" звездочками пароли. очень удобно когда пароль сохранен а ты его не помнишь, чтобы передать куда-то и тд.

javascript:(function (){
   var $inputs=document.getElementsByTagName('input'), 
      iMax=$inputs.length; 
      for(var i=iMax;i--;) if($inputs[i].type=='password') $inputs[i].type='text';
})()


или такой - показать используемую сайтом версию jquery
javascript:(function(){if (window.jQuery){ alert(jQuery.fn.jquery);} else {alert('no jquery');} })();


или генератор рандомных паролей
javascript:(function (){var s=("ABCDEFGHKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz123456789").split("");var cnt=s.length;var codeLen=10; var pass=""; for(var i=0;i<codeLen;i++){pass+=s[Math.floor(Math.random()*cnt)];}prompt("new random password (A-Z a-z 0-9)", pass); })()
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы