我正在使用一个小书签,它可以在新窗口中打开网页。它在 Chrome 上运行正常。
但是,当我在 Firefox 中使用相同的功能时,它会打开一个包含新网页的新窗口,但单击此书签的页面将转发到带有文本
[object Window]
的某个页面。我该如何解决这个问题?
我的代码:
<a href="javascript:open('http://www.google.com','targetname','height=500,width=500');">Bookmarklet</a>
请让我知道如何解决这个问题。
谢谢
你必须“吃掉”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'))
您可能会扩展您的书签,因此为了防止全局范围混乱,您最好采用匿名函数方式(注意缺少
return
语句):
javascript:(function(){open('http://www.google.com','targetname','height=500,width=500');/* more code to go */})()
试试这段代码,我添加了“void(0);”单击后停止父窗口消失。
<a href="javascript:open('http://www.google.com','targetname','height=500,width=500');void(0);" >Bookmarklet </a>
我用这个制作了一款便携式僵尸游戏! javascript:open('https://sites.google.com/kcsdschools.org/pvz','targetname','height=500,width=500');void(0); 谢啦!上帝保佑你