Bookmarklet执行多个任务

问题描述:

我一直在整天围绕这个应用程序进行修补,并且遇到了一些困难。所以基本上,小书签需要允许用户使用来自多个JavaScript文件的大量函数,尽管用户使用的所有函数都是从一个文件中调用的。基本上它包含了执行某个功能所需的全部文件。它使用jQuery,我发现在你的书签上运行jQuery是非常困难的。Bookmarklet执行多个任务

我的问题是:如何将多个JavaScript代码文件加载到您的Bookmarklet中?

您的确是
Emil Hajric。

你可以嵌入脚本的书签正在 f.ex文档,如果您的书签是一样的东西

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在那里。

如果您必须使用书签运行多个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"); 
})(); 

(注:实际使用这个作为一个书签,有必要加入所有的行成一条线。)

+0

我不认为这是最好的地方的jQuery在`结束body`。 – nyuszika7h 2010-12-04 15:07:11