意外的令牌错误:在bookmarklet中

时间:2012-04-07 08:59:24

标签: javascript bookmarklet

这个想法是写一个简单的书签。 如果问题是可能的重复,请指点我,因为我没有成功找到。

我尝试使用bookmarklet启用当前页面jquery并使用某些jquery apis。

  

未捕获的SyntaxError:意外的标记ILLEGAL

上面是我使用下面的示例书签

得到的错误
javascript:(function(){
 var d=document.createElement('script');
 d.setAttribute('src', 'http://code.jquery.com/jquery-latest.js');
 document.head.appendChild(d);
 $('a').each(function(){
  alert( $(this).attr('src') );
 });
})()

如果我在控制台中逐行执行相同的代码,那就可以了。

提前致谢

1 个答案:

答案 0 :(得分:1)

要使页面等到jQuery完全加载,请向script元素添加一个加载处理程序。这在我的浏览器中有效:

javascript:(function(){
 var d=document.createElement('script');
 d.src = 'http://code.jquery.com/jquery-latest.js';
 d.onload = function(){ /* load handler here */
   $('a').each(function(){
     console.log( $(this).attr('href') );
   });
 };
 document.getElementsByTagName('head')[0].appendChild(d);
})()

我稍微更改了您的代码(直接将src属性作为属性添加到创建的script元素中,以更经典的方式检索head元素,使用{{1而不是console.log并记录所有链接的alert属性。)