外部Javascript书签不起作用

时间:2010-07-03 12:45:37

标签: javascript bookmarklet

它是一个简单的javascript书签,可以抓取标题,网址和所选文字。为了确保它完全抓住标题(只是标题)我必须使这个书签长。如果我手动编辑bookamrklet它工作得很好。它的拖拽方式太长,就像通常的书签一样。但我通过不同的方式尝试了很多外部的JavaScript方式。我做不到。 我使用 google sites 作为JS文件的托管网站。

     javascript: 
q=(document.location.href);
t=(document.title); 
tt=t.lastIndexOf('|');
if(tt>-1) title=t.substring(0,tt);
else 
{ 
if(t.lastIndexOf('%E2%80%A2')>-1) title=t.substring(0,t.lastIndexOf('%E2%80%A2'));
else if(
t.lastIndexOf('%C2%AB')>-1) title=t.substring(0,t.lastIndexOf('%C2%AB')); 
      else { title=t; } }
if(q.search("inblog")!=-1) 
{ x=title.lastIndexOf('-'); title=title.substring(0,x); }
else if(q.search("m-alo.com")!=-1) 
{ x=title.lastIndexOf('-'); title=title.substring(x+2); }
else if(q.search("blog4")!=-1) 
 { x=title.indexOf('|'); title=title.substring(x+2,title.length); }   
else if(q.search("blogspot")!=-1) 
{ x=title.indexOf(':'); title=title.substring(x+2,title.length); }
else if(q.search("blog")!=-1)          title=document.getElementsByTagName('h2').item(0).innerHTML; 
else if(q.search("arts")!=-1) 
{ x=title.lastIndexOf('%C2%BB'); title=title.substring(x+2); } 
else if(q.search("sports")!=-1||q.search("tech")!=-1)      title=document.getElementsByTagName('h1').item(0).innerHTML;
else if(q.search("blog2")!=-1) { title=document.getElementsByTagName('h1').item(0).innerHTML; x=title.lastIndexOf('">'); title=title.substring(x+4,title.length-4); }
d=document,s=''; 
if(d.getSelection) s=d.getSelection(); if(d.selection) s=d.selection.createRange().text;
if(window.getSelection) s=window.getSelection();
void(open('http://domain.com/submit?url='+encodeURIComponent(q.replace(/[#].*/,''))+'&title='+encodeURIComponent(title)+'&body='+encodeURIComponent(s),'',
'resizable,location,menubar,toolbar,scrollbars,status'));
你能帮帮我吗?如何将此脚本放入外部js文件并加载?

1 个答案:

答案 0 :(得分:3)

小书签通常会加载一个<script>标记,然后负责处理剩下的内容。这减少了书签大小。类似的东西:

javascript:(function(){

var head = document.getElementsByTagName("head")[0];
var script = document.createElement("script");
script.src = "http://yoursite.com/external.js";
head.appendChild(script);

})();

请务必编辑“http://yoursite.com/external.js”部分。