2011-05-09 28 views
1

我在页面上有一个元素的切换按钮,当我点击它时,我可以看到脚本运行并切换元素,但随后我得到一个新窗口JS对象返回[我猜..]。它只是一个空白的窗口与我的href网址,它说[object Object]
在铬它的罚款,但ie和Firefox做到这一点。 他们的方式我这样做是jQuery脚本在Firefox和Internet Explorer上返回新窗口

<a href="javascript:jQuery('#thatDude').toggle();">click</a> 
<div id="thatDude">blah</div> 

了更奇怪的是,我也有,这是我的脚本文件

jQuery('.someBtn').live('click', function() { 
    jQuery('#someForm').toggle(); 
}); 

,当我点击 - 它工作正常,任何地方...... [耶我知道我应该改变生活委托=]]

没有人知道最新怎么回事? IM使用jQuery 1.6 [1.4.4,但不相同..]

感谢这么多

+0

请在提交前下次检查您的问题。您的问题的格式包含必须修复的错误。如果你第一次做到这一点,你很可能会收到更好的答案。 – 2011-05-09 07:22:17

+0

哦对不起,我不知道它必须包装所有的代码。 – 2011-05-09 11:21:49

回答

7

发生什么事情是,如果该返回值不是void,那么脚本在javascript: URI中的返回值将被视为HTML并按此解析。除了在WebKit中没有实现该功能(下面提到一个例外)。在你的情况下,我假设jQuery的toggle()返回一个不确定的实际值,该值被当作一个字符串来解析为HTML。

你可以看到在IE和Firefox和Opera这个简单的测试用例的行为:

<a href="javascript:'<h1>some text</h1>'">Click me</a> 

这完全失败,在WebKit浏览器,虽然这确实在WebKit的工作,因为他们特殊破解一个代码路径:

<iframe src="javascript:'<h1>some text</h1>'"></iframe> 

如果你想确保你的脚本的返回值是无效的,把void(0)放在脚本的末尾。

+0

哇我很喜欢这个地方。谢谢 ! – 2011-05-09 16:08:51

+0

非常棒的这个对我来说很有效。 xlink:href =“javascript:$('#someid')。modal('show'); void(0)” – Nick 2013-09-18 21:29:44

0

将返回false从您的单击事件处理程序,应该帮助。

相关问题