javascript - Bookmarklet 不断跳转到新页面

标签 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;

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

最佳答案

对于空白页问题,你不应该返回false ,并且由于您使用的是自动调用的匿名函数,您可以简单地删除 return声明。

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

例如:

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

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

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

浏览器不会导航。

之后我有几点意见:

文件将被异步加载,你不能 100% 确定 jQuery 会在更改 src 后立即加载。元素的属性,您可以使用 load script 事件元素(readystatechange 用于 IE)。

我还建议您附加 script元素到 head .

关于javascript - Bookmarklet 不断跳转到新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2395278/

相关文章:

javascript - CMS Bitrix 不加载脚本

javascript - 我可以使用 indexOf(input) 吗?

javascript - 条件变量存在,不存在时返回错误

Javascript/jquery 写入从 :selected option to separate input 开始的每个文本值

silverlight - WP7/Silverlight 超链接图片

javascript - 无法在我的自定义类 (Javascript) 中继承 google.maps.Map V3

javascript - 在多个页面上使用多个 jQuery 插件?

javascript - 如何使父菜单项仅在第二次单击时定向到其链接

html - 用 "blocked::"作为标题属性前缀对链接有什么影响?

ASP.Net从背后的代码在浏览器中打开新选项卡