Chrome 打开新窗口的书签将当前窗口转发到[对象窗口]?

wwtsj6pe  于 12个月前  发布在  Go
关注(0)|答案(2)|浏览(116)

我正在使用一个小书签,它可以在新窗口中打开一个网页。它在Chrome上运行正常。
然而,当我在Firefox中使用相同的方法时,它会打开一个新窗口,其中包含新的网页,但单击此书签的页面会转发到带有文本[object Window]的某个页面。如何解决此问题?
我的代码:

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

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

3z6pesqy

3z6pesqy1#

你必须“吃”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'))

你很可能会扩展你的bookmarklet,所以为了防止全局作用域混乱,你最好使用匿名函数的方式(注意没有return语句):

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

dzhpxtsq2#

试试这段代码,我已经添加了“void(0);“来停止父窗口在点击后消失。

<a href="javascript:open('http://www.google.com','targetname','height=500,width=500');void(0);" >Bookmarklet </a>

相关问题