<rmcreative>

RSS

Букмарклет, подгружающий внешний скрипт

2 июля 2008

В текущем проекте была задача написания полуавтоматического граббера страниц. Для этого необходимо было делать инъекцию скрипта в текущую страницу. Решил таким букмарклетом:

<a href="javascript:(function(){var d=document,s;
s=d.createElement('script');
if(typeof s!='object')s=d.standardCreateElement('script');
s.src='http://example.com/js/bookmarklet.js';
s.type='text/javascript';
document.getElementsByTagName('head')[0].appendChild(s);})();">Do it!</a>

В более читаемом виде:

(function(){
  var d = document, s;
  s = d.createElement('script');
  if(typeof s != 'object'){
    s = d.standardCreateElement('script');
  }
  s.src = 'http://example.com/js/bookmarklet.js';
  s.type = 'text/javascript';
  document.getElementsByTagName('head')[0].appendChild(s);
})();

Оттестировано в IE6, IE7, FF2, FF3, Opera 9.2, Opera 9.5, Safari.

Комментарии RSS

  1. №396
    Octane
    Octane 02 июля 2008 г., 20:42:39

    А для чего ссылку на document делать, только чтобы короче запись была?

  2. №397
    Sam
    Sam 02 июля 2008 г., 20:55:08

    Да, в IE6 присутствует довольно жёсткое ограничение по длине.

  3. №884
    мегабайтыч
    мегабайтыч 23 нояб. 2008 г., 4:08:12

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

  4. №886
    Sam
    Sam 23 нояб. 2008 г., 16:56:18

    Тут зависит от цели, конечно, но общий алгортим прост:

    1. Грузим внешний скрипт на текущую страницу.

    2. Собираем данные.

    3. Формируем на их основе форму.

    4. Сабмитим.

  1. Почта опубликована не будет.

  2. Можно использовать синтаксис Markdown или HTML.

  3. Введите ответ в поле. Щёлкните, чтобы получить другую задачу.