Загрузите страницу и примените JavaScript в одной закладке - PullRequest
1 голос
/ 15 июля 2010

У меня есть закладка, которая открывает мою страницу календаря Google (http://www.google.com/calendar/renderOnline)) и букмарклет, который применяет к нему некоторый JavaScript:

.

JavaScript: document.getElementById ( 'gadgetcell') SetAttribute ( 'стиль', 'ширина: 300px'); document.getElementsByClassName ( 'SN-кадр') [0] .setAttribute ( 'стиль', 'ширина: 300px ');

Есть ли способ объединить их в один букмарклет, чтобы мне не приходилось нажимать дважды дважды?

Спасибо!

Ответы [ 3 ]

1 голос
/ 15 июля 2010

Нет.Букмарклет запускается в контексте исходной страницы, поэтому он не может менять страницы и продолжать работу. GreaseMonkey может оказаться полезным, если вы всегда хотите запустить этот код на странице.Или Стильный позволяет применять пользовательские стили к страницам.

0 голосов
/ 06 апреля 2017

У меня была мысль использовать букмарклет для этого:

javascript:location.href='http://google.com';setTimeout(function(){alert('hi');},2000);

Функция setTimeout может быть любой, и из-за 2-секундного таймера страница будет иметь время для загрузки и произвольный кодвыполнит против этого.Но это не сработало.Независимо от того, какую функцию я пытаюсь вызвать в setTimeout, она просто никогда не выполняется, или, возможно, она выполняется в каком-то другом пространстве, которое было уничтожено при загрузке новой страницы или что-то в этом роде.Этот код setTimeout отлично работает как букмарклет, если нет изменений в location.href.

Однако мне интересно, возможно, лучше будет сделать AJAX-загрузку нужной страницы в текущее пространство, а затем попытаться выполнить что-то.Если я попытаюсь это сделать, я обновлю здесь.

0 голосов
/ 15 июля 2010

Вы можете использовать расширение, чтобы получить то же поведение.

Например, в Safari вы бы создали кнопку, которая запускает URL, и внедренный скрипт, который запускает ваш букмарклет.GreaseMonkey и многие другие фреймворки расширений могут делать подобные вещи.

...