我正在使用一个小书签,它在新窗口中打开一个网页。它适用于chrome。
然而,当我在Firefox中使用相同内容时,它会打开一个带有新网页的新窗口,但点击此书签的页面将转发到某个文本为[object Window]
的页面。我该如何解决这个问题?
我的代码:
<a href="javascript:open('http://www.google.com','targetname','height=500,width=500');">Bookmarklet</a>
请让我知道如何解决这个问题。
由于
答案 0 :(得分:16)
您必须在JavaScript网址中“吃掉”最后一个返回值,返回任何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 */})()
答案 1 :(得分:1)
试试这段代码,我添加了“void(0);”单击后停止父窗口消失。
<a href="javascript:open('http://www.google.com','targetname','height=500,width=500');void(0);" >Bookmarklet </a>