Bookmarklet继续前往新页面

时间:2010-03-07 05:21:48

标签: javascript jquery hyperlink bookmarklet

我制作了这个书签:

javascript:(function(){var s=document.createElement('script');s.setAttribute('src','http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js');document.getElementsByTagName('body')[0].appendChild(s);$('#hldIntMain').hide();$('#fadeBackground').hide();return false;})()

格式化代码:

// Add in jQuery
var s=document.createElement('script');
s.setAttribute('src','http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js');
document.getElementsByTagName('body')[0].appendChild(s); 
// Make page viewable
$('#idIntMain').hide();
$('#idBackground').hide();
return false;

但每当我运行它时,它会在完成工作后加载一个空白页面。我做错了什么?

1 个答案:

答案 0 :(得分:6)

对于空白页问题,您不应该返回false,并且由于您使用的是自动调用匿名函数,因此您只需删除 return语句

默认情况下,当函数体上没有return语句时,它们返回undefined值,这将阻止导航到空白页面。

E.g:

javascript:(function () { return false; })();

将显示一个空白页面,其中包含返回值的字符串表示形式,在这种情况下为“false”。

javascript:(function () {})();

浏览器无法导航。

之后我有几点评论:

文件将以异步方式加载,您无法100%确定在更改元素的src属性后立即加载jQuery,您可以使用load事件{ {1}}元素(IE的script)。

我还建议您将readystatechange元素附加到script