Javascript 创建一个不包含';不要被阻挡

Javascript 创建一个不包含';不要被阻挡,javascript,popup,bookmarklet,Javascript,Popup,Bookmarklet,目标:创建一个bookmarklet,调用打开弹出窗口的远程javascript文件。弹出窗口的功能类似于Delicious的bookmarklet Background:目前,我在这个javascript文件中使用window.open,但是弹出窗口几乎被所有主流浏览器都阻止了 另一种解决方案非常类似于Delicious通过bookmarklet本身中的javascript查询编写bookmarklet调用window.open的方式。但是,我需要能够在将来修改javascript文件的其他内

目标:创建一个bookmarklet,调用打开弹出窗口的远程javascript文件。弹出窗口的功能类似于Delicious的bookmarklet

Background:目前,我在这个javascript文件中使用window.open,但是弹出窗口几乎被所有主流浏览器都阻止了

另一种解决方案非常类似于Delicious通过bookmarklet本身中的javascript查询编写bookmarklet调用window.open的方式。但是,我需要能够在将来修改javascript文件的其他内容,而不需要用户不断获取bookmarklet的最新版本

我确定要发生的事情:由于window.open调用不是由于用户单击而直接发生的,因此浏览器认为这是应该阻止的事情。这是关于这个的

是我最近在创建远程js文件调用时引用的教程

下面是我的代码的基本示例;window.open/popup部分是我所包含的唯一重要部分,因为我觉得这是导致复杂性的唯一部分:

远程javascript文件的示例:

if (typeof jQuery == 'undefined') {
    var jQ = document.createElement('script');
    jQ.type = 'text/javascript';
    jQ.onload=runthis;
    jQ.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js';
    document.body.appendChild(jQ);
} else {
    runthis();
}

function runthis() {
    window.open('http://www.google.com/', 'a title',
       'location=yes,links=no,scrollbars=no,toolbar=no,width=550,height=550');
}

我真的很感激任何帮助,因为这已经困扰了我一段时间了

一种看起来更好的解决阻塞问题的方法是让bookmarklet在用户当前查看的页面中插入iframe。当我问这个问题时,我最终还是采用了这种方法。很好。

一种看起来更好的解决阻塞问题的方法是让bookmarklet在用户当前查看的页面中插入一个iframe。当我问这个问题时,我最终还是采用了这种方法。很好。

如果你能从外部包含的文件中做到这一点,为什么每个垃圾邮件发送者和侵入性广告客户都不能做到同样的事情呢?如果你想一想这会带来的弊端,很容易就会明白为什么每个浏览器都会主动阻止它。呃,这是一个bookmarklet,用户必须主动点击它,bookmarklet需要用户交互才能创建。如果你能做到这一点,从一个外部包含的文件中,为什么每个垃圾邮件发送者和侵入性广告商都不能这样做?如果你想一想这会带来的弊端,很容易理解为什么每个浏览器都会主动阻止它。呃,这是一个bookmarklet,用户必须主动单击它,bookmarklet需要用户交互才能创建。