Скрипт запускается из консоли, но печатает переменные из Bookmarklet? - PullRequest
0 голосов
/ 22 сентября 2019

Я люблю улучшать свой Chrome / Chromium опыт работы с JavaScript / Bookmarklets , но теперь я сталкиваюсь со следующей проблемой:

Код

javascript:/*img2float*/ var str=prompt("src of img to float",document.querySelector("img").getAttribute('src'));str.length>0?content=str:content="Alap/Alap00.gif",document.querySelector("img[src*='"+content+"']").style.cssText="position:fixed;left:0;top:0;max-height:200px;box-shadow: 1px 1px 46px -21px;opacity:0.9";

Объяснено

  1. var src=prompt("src of <img> to float",document.querySelector("img").getAttribute('src')); src атрибут первого image
  2. scr.length>0? если NOT NULL
  3. var ThisDOM=src: ThisDOM = запрашиваемое значение , else
  4. ThisDOM="Alap/Alap00.gif", по умолчанию , наиболее часто используемые настройки
  5. document.querySelector("img[src*='"+ThisDOM+"']"). выберите требуемый image
  6. style.cssText= добавить желаемый стиль css
  7. "position:fixed;left:0;top:0;max-height:200px;box-shadow: 1px 1px 46px -21px;opacity:0.9"; стиль css настройки

Проблема

  • [✔] Запуск кода из DevTools> Консоль правильно применяет настройки стиля css к изображению,
  • [ ø ], но выполняется из Bookmarklet просто распечатывает css стиль настройки (Объяснено на 7.)

1 Ответ

0 голосов
/ 22 сентября 2019

В процессе украшения моего вопроса выше я попытался обернуть код в функцию, как описано здесь: javascript - функционировать как закладка Google Chrome и, наконец, сработало!

Оболочка

javascript:(function(){ })();

Окончательный код

javascript:/*img2float*/ (function(){var scr=prompt("src of img to float",document.querySelector("img").getAttribute('src'));scr.length>0?ThisDOM=scr:ThisDOM="Alap/Alap00.gif",document.querySelector("img[src*='"+ThisDOM+"']").style.cssText="position:fixed;left:0;top:0;max-height:200px;box-shadow: 1px 1px 46px -21px;opacity:0.9";})();

Но мне все еще интересно, почему не работает без функции-обертки?

...