<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.