为什么twitter bookmarklet不被弹出窗口拦截器阻止?

pri*_*ank 4 javascript bookmarklet popup window.open

检查此链接. http://dev.twitter.com/pages/share_bookmarklet

将书签拖到书签栏并单击它.它会打开一个弹出窗口.

为什么我的firefox/ie/chrome没有阻止这个?

谢谢

javascript: 
function loadScript(scriptURL) {
    var scriptElem = document.createElement('SCRIPT');
    scriptElem.setAttribute('language', 'JavaScript');
    scriptElem.setAttribute('src', scriptURL);
    document.body.appendChild(scriptElem);
}
var url = 'http://api.bit.ly/shorten?version=2.0.1&login=tweetthees&apiKey=Rxyz&longUrl=' + document.location;
var longUrl = document.location;
loadScript(url + '&callback=tweetme');
function tweetme(json) {
    var shortLink = json.results[longUrl].shortUrl;
    var finalUrl = 'http://twitter.com/home?status=Reading: ' + document.title + ' ' + shortLink;
    window.open(finalUrl, "Share link", "width=1024,height=400,location=1,status=1,scrollbars=1");
}
Run Code Online (Sandbox Code Playgroud)

Dr.*_*lle 6

通常,弹出窗口阻止程序不会阻止弹出窗口,它们只会阻止应该在没有任何用户操作的情况下打开的弹出窗口.如果您使用bookmarklet,则不是这种情况,因为用户在弹出窗口打开之前选择了bookmarklet.当使用书签时,可能会被弹出窗口阻止程序观察到,就像Nick说的那样(我认为没有必要,应该信任书签).

但是在网页中,如果在点击事件之后调用该函数,则此弹出窗口也不会被阻止.