Запуск функции Javascript автоматически - PullRequest
1 голос
/ 14 сентября 2011

Я нашел функцию javascript, которая инвертирует цвета на веб-странице:

String javascript = "javascript: (function (){var newSS, styles = '* { background-color: black ! important; color: green !important; }a:link, a:link * { color: green !important; text-style: underline; }a:visited, a:visited * { color: #7f0000 !important; }a:hover, a:hover * { color: red !important; }';var elemHead = document.getElementsByTagName(\"head\")[0];var elemCSS = document.getElementById(\"darkenCSS\");if (elemCSS){elemHead.removeChild(elemCSS);}else{newSS = document.createElement('link');newSS.rel = 'stylesheet';newSS.href = 'data:text/css,' + escape(styles);newSS.id = \"darkenCSS\";elemHead.appendChild(newSS);}})();";

Возможно ли запустить это автоматически?Под этим я имею в виду загрузку www.google.co.uk и применение этой функции javascript.4

Надеюсь, что это имеет смысл, я не очень разбираюсь в javascript.

РАЗЪЯСНЕНИЕ:

Я хочу знать, можно ли вообще добавить эту функцию javascript к URL-адресу.Что-то вроде http://www.google.com/?Javascript_blah_blah_blah

ДОПОЛНИТЕЛЬНАЯ УТОЧНЕНИЕ:

Я делаю основной веб-браузер в Android.Я хочу инвертировать цвета на веб-странице.Я сделал кнопку, которая выполняет этот JavaScript на странице.Это работает.Но нужно, чтобы пользователь нажимал кнопку каждый раз.

Я хочу сделать переключатель, чтобы сделать постоянно инвертированным.

Поэтому мне нужно перейти к вводу URL и сделать так, чтобы он автоматически инвертировал цвета.

Надеюсь, это поможет

Ответы [ 4 ]

3 голосов
/ 14 сентября 2011

Да, вставить строку без кавычек в адресную строку. Убедитесь, что псевдо-протокол javascript: находится в начале


добавление rlemon

Сначала необходимо изменить скрипт, чтобы убрать экранированные кавычки, а затем добавить новую закладку в адресную строку. Отредактируйте закладку и измените местоположение на

javascript:%20(function%20(){var%20newSS,%20styles%20=%20'*%20{%20background-color:%20black%20!%20important;%20color:%20green%20!important;%20}a:link,%20a:link%20*%20{%20color:%20green%20!important;%20text-style:%20underline;%20}a:visited,%20a:visited%20*%20{%20color:%20#7f0000%20!important;%20}a:hover,%20a:hover%20*%20{%20color:%20red%20!important;%20}';var%20elemHead%20=%20document.getElementsByTagName("head")[0];var%20elemCSS%20=%20document.getElementById("darkenCSS");if%20(elemCSS){elemHead.removeChild(elemCSS);}else{newSS%20=%20document.createElement('link');newSS.rel%20=%20'stylesheet';newSS.href%20=%20'data:text/css,'%20+%20escape(styles);newSS.id%20=%20"darkenCSS";elemHead.appendChild(newSS);}})();

Вот оно!

1 голос
/ 14 сентября 2011

Нет, вы не можете просто запустить javascript, добавленный к URL.Это нарушение безопасности (будет).Но вы можете использовать

  • букмарклетов ('URL', начинающийся с javascript:),
  • плагинов для браузера (Chrome / FF / Safari - все могут это делать) или
  • вы можете найти плагин, который может запускать userscripts .Это что-то вроде Greasemonkey.

Также вы можете попробовать Fluid (браузер для конкретного сайта, только MacOS X) ... Я думаю, вы поняли.

BTW если вы хотите / должны написать букмарклет, вы можете запустить его на определенном сайте и хотите что-то запустить - проверьте эту статью: http://coding.smashingmagazine.com/2010/05/23/make-your-own-bookmarklets-with-jquery/

1 голос
/ 14 сентября 2011

Самый простой способ, если вы используете Firefox (говорят, что надстройка работает в Chrome и Opera, но я никогда не пробовал), это установить Greasemonkey и создать пользовательский скрипт для домена (ов). ) / URL, которые вы хотите - www.google.co.uk/*, www.google.com/* и т. Д.

Однако такие вещи лучше делать с расширением Стильное , но вы можете использовать только CSS, но не JavaScript. Но в том, что вы представили, следующий фрагмент CSS должен работать как шарм:

* { background-color: black ! important; color: green !important; }a:link, a:link * { color: green !important; text-style: underline; }a:visited, a:visited * { color: #7f0000 !important; }a:hover, a:hover * { color: red !important; }

В Интернете доступно множество пользовательских скриптов и пользовательских стилей .

0 голосов
/ 14 сентября 2011

Вы можете использовать Chrome + http://defunkt.io/dotjs/ для достижения этой цели.Именно в этом и заключается цель этого расширения: автоматически запускать некоторые JS-скрипты на определенных веб-сайтах.

Пока это только OSX, но, полагаю, есть и другие расширения, которые делают это также.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...