锚链接中的button在Firefox中工作,但不在Internet Explorer中?

除了我的链接外,我网站上的其他所有内容似乎都与所有浏览器兼容。 他们出现在网页上,但他们不工作。 我的代码链接如下 –

<td bgcolor="#ffffff" height="370" valign="top" width="165"> <p> <a href="sc3.html"> <button style="width:120;height:25">Super Chem #3</button> </a> <a href="91hollywood.html"> <button style="width:120;height:25">91 Hollywood</button> </a> <a href="sbubba.html"> <button style="width:120;height:25">Super Bubba</button> </a> <a href="afgoohash.html"> <button style="width:120;height:25">Afgoo Hash</button> </a> <a href="superjack.html"> <button style="width:120;height:25">Super Jack</button> </a> <a href="sog.html"> <button style="width:120;height:25">Sugar OG</button> </a> <a href="91pk91.html"> <button style="width:120;height:25">91 x PK</button> </a> <a href="jedi1.html"> <button style="width:120;height:25">Jedi</button> </a> </p> <p>&nbsp;</p> <a href="http://indynile99.blogspot.com"> <button style="width:120;height:25">Blog</button> </a> <p>&nbsp;</p> </td> 

<a>元素中不能有<button>

“交互元素button不能出现为元素的后代”。 资料来源: http : //www.w3.org/TR/html-markup/button.button.html#button.button

为了得到你想要的效果,你可以放弃<a>标签,并添加一个简单的事件处理程序,每个button导航浏览器到所需的位置,例如

 <input type="button" value="stackoverflow.com" onClick="javascript:location.href = 'http://stackoverflow.com';" /> 

不过,请考虑要这样做。 定期链接的工作原理是这样的:

  • 用户可以立即识别链接,并了解他们导航到其他页面
  • search引擎可以将它们识别为链接并遵循它们
  • 屏幕阅读器可以将它们识别为链接并适当地为用户提供build议

您还添加了一个完全不必要的要求,只是为了执行基本导航而启用JavaScript; 这是networking的一个基本方面,我认为这种依赖是不可接受的。

如果需要,可以使用背景图像或背景颜色,边框和其他技术来设置链接样式,使其看起来像button,但是在封面下方,它们应该是普通链接。

只是一个说明:
W3C没有链接标签内的button问题,所以它只是另一个MS子标准。


使用代理button,除非你想去一个完整的形象。

代理button可以放在标签(更安全,如果你使用跨度,而不是div)。

它可以看起来像button,或其他任何东西。

它是多function的 – 一块CSS代码为所有实例提供支持 – 只需定义一次CSS,然后从该代码复制并粘贴html实例,无论您的代码是否需要它。

每个button都可以有自己的标签 – 非常适合多语言页面(更容易为每种语言做图片 – 我认为) – 还可以让整个脚本更容易传播实例。

调整它的宽度来标记长度 – 如果你想要的话也需要固定的宽度。
IE7是一个例外 – 它必须有宽度,或者将这个button从边到边 – 或者给它的宽度,你可以浮动button左
– IE7的CSS:
一个。 .WIDTH:150像素; (注意属性前面的点,我通常添加这样的点来对待IE7 – 删除点和属性会被所有浏览器读取)
湾 文本alignment:中心; – 如果你有固定的宽度,你必须有这个中心文本/标签
C。 光标:指针; – 所有IE浏览器必须有这个才能正确显示链接指针 – 好的浏览器不需要它

你可以用这个代码来向前迈进,并使用CSS3来设置它的样式,而不是使用图像:
一个。 圆angular半径(限制:IE会显示它们的方形)
湾 渐变使其“button像”(限制:歌剧不支持渐变,所以记得要为这个浏览器设置标准的背景色)
C。 使用:hoverpclass根据鼠标指针位置等改变button的状态 – 您可以将其应用于文本标签只,或整个button

下面的CSS代码

 .button_surrogate span { margin:0; display:block; height:25px; text-align:center; cursor:pointer; .width:150px; background:url(left_button_edge.png) left top no-repeat; } .button_surrogate span span { display:block; padding:0 14px; height:25px; background:url(right_button_edge.png) right top no-repeat; } .button_surrogate span span span { display:block; overflow:hidden; padding:5px 0 0 0; background:url(button_connector.png) left top repeat-x; } 

下面的HTML代码(button实例)

 <a href="#"> <span class="button_surrogate"> <span><span><span>YOUR_BUTTON_LABEL</span></span></span> </span> </a> 
 $("a > button").live('click', function() { location.href = $(this).closest("a").attr("href"); }); // fixed 

下面的代码在所有浏览器中都能正常工作:

 <button onClick="location.href = 'http://www.google.com'">Go to Google</button> 

标签内不能有button。 你可以做一些JavaScript来使其工作。

如果你正在使用像Twitter引导的框架,你可以简单地添加类“btn”到一个标签 – 我只是有一个用户调用这个问题显然我的结帐button不工作,因为我有一个button标签…而是我刚刚添加了btn类,它现在完美的工作..大错,一个可能成本客户 – 我有时忘记代码检查一切工作在IE浏览器..

例如<a href="link.com" class="btn" >Checkout</a>

我发现这对我有用

 <input type="button" value="click me" onclick="window.open('http://someurl', 'targetname');"> 

由于这只是IE中的一个问题,为了解决这个问题,我首先检测浏览器是否是IE浏览器,如果是,请使用jquery点击事件。 我把这个代码放到一个全局文件中,所以它在整个站点都是固定的。

 if (navigator.appName === 'Microsoft Internet Explorer') { $('a input.button').click(function() { window.location = $(this).closest('a').attr('href'); }); } 

这样,我们只有将点击事件分配给IE的链接inputbutton的开销。 注意:上面的代码是在文档就绪函数内部,以确保页面在分配点击事件之前完全加载。

我也分配类名到我的inputbutton,以节省一些开销,当使用IE浏览器,所以我可以search

 $('a input.button') 

代替

 $('a input[type=button]') 

 <a href="some_link"><input type="button" class="button" value="some value" /></a> 

最重要的是,我还利用CSS让鼠标hover在button上时看起来是可点击的:

 input.button {cursor: pointer} 

<form:form method="GET" action="home.do"> <input id="Back" class="sub_but" type="submit" value="Back" /> </form:form>

这工作很好,我已经testing了IE9。

实际上这非常简单,不需要JavaScript。

首先,将锚固在button内

 <button><a href="#">Bar</a></button> 

然后,将锚标记转换为块types元素并填充其容器

 button a { display:block; height:100%; width:100%; } 

最后,根据需要添加其他样式。

这里的问题是链接位于button后面,即使在更改z索引时也是如此。 这个标记也是无效的( 阅读规范 )。 所以链接不工作的原因是因为你实际上点击button,而不是链接。 解决办法是改变你的标记。

 <button type="button"><a href="yourlink">Link</a></button> 

然后根据需要的风格。 演示在这里 。

只需将这个jQuery代码插入到您的HTML头部分即可:

 <!--[if lt IE 9 ]> <script> $(document).ready(function(){ $('a > button').click(function(){ window.location.href = $(this).parent().attr('href'); }); }); </script> <![endif]--> 

为什么不只是用type="button"将所有的<button>转换为<span> ,然后用你的普通的cssbutton类进行样式化呢? 刚刚证实,这在IE11中起作用。