Bookmarklet打开一个新窗口将当前窗口转发到[Object Window]?

Lal*_*ith 11 javascript firefox google-chrome bookmarklet

我正在使用一个小书签,在新窗口中打开一个网页.它适用于chrome.

但是,当我在Firefox中使用相同的内容时,它会打开一个带有新网页的新窗口,但点击此书签的页面将转发到带有文本的某个页面[object Window].我该如何解决这个问题?

我的代码:

<a href="javascript:open('http://www.google.com','targetname','height=500,width=500');">Bookmarklet</a>
Run Code Online (Sandbox Code Playgroud)

请让我知道如何解决这个问题.

谢谢

Fre*_*ing 17

您必须在JavaScript URL中"吃掉"最后一个返回值,返回任何内容typeof returnValue != 'undefined'都等同于调用document.write(returnValue).并window.open返回新创建的window对象,因此输出"[object Window]".当然,你可以通过盲目地附加void(0)声明来做到这一点,但它太笨拙了.无魔法版本(吃掉的返回值,调用窗口不受干扰):

javascript:void(open('http://www.google.com','targetname','height=500,width=500'))
Run Code Online (Sandbox Code Playgroud)

您可能会扩展您的书签,因此为了防止混乱的全局范围,您最好采用匿名函数方式(请注意缺少return语句):

javascript:(function(){open('http://www.google.com','targetname','height=500,width=500');/* more code to go */})()
Run Code Online (Sandbox Code Playgroud)