我做了这个书签:
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/