Букмарклет для выполнения нескольких задач - PullRequest
1 голос
/ 11 апреля 2009

Я целый день возился с этим приложением и столкнулся с некоторыми трудностями. Поэтому в основном букмарклет должен позволять пользователю использовать множество функций из нескольких файлов JavaScript, хотя все функции, которые будет использовать пользователь, вызываются из одного файла. В основном он включает в себя все необходимые файлы для выполнения определенной функции. Он использует jQuery, и я обнаружил, что действительно трудно запустить jQuery на вашей закладке.

Мой вопрос: как я могу загрузить несколько файлов кода JavaScript в ваш Bookmarklet?

С уважением,
Эмиль Хайрик.

Ответы [ 2 ]

1 голос
/ 11 апреля 2009

Если вам нужно запустить несколько файлов JavaScript с помощью букмарклета, я бы порекомендовал создать функцию в букмарклете для импорта файлов.

Эта функция может быть записана как

var importJs=function(jsUrl){
  var s=document.createElement("script");
  s.setAttribute("src",jsUrl);
  document.body.appendChild(s);
};

Чтобы использовать букмарклет на самом деле, просто объявите эту функцию, а затем вызывайте ее один раз для каждого импортируемого файла.

javascript:(function(){
  var importJs=function(jsUrl){
    var s=document.createElement("script");
    s.setAttribute("src",jsUrl);
    document.body.appendChild(s);
  };
  importJs("http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js");
  importJs("http://your.domain.com/codeThatUsesJQuery.js");
})();

(Примечание. Чтобы использовать это как букмарклет, необходимо объединить все строки в одну строку.)

1 голос
/ 11 апреля 2009

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

    javascript:void((function(){var e=document.createElement('script');
    e.setAttribute('type','text/javascript');
    e.setAttribute('charset','UTF-8');
    e.setAttribute('src','http://yoursite/bookmarklet.js');
    document.body.appendChild(e)})());

Вы можете добавить столько элементов скрипта, сколько пожелаете, попробуйте добавить туда jquery.

...