2012-05-10 95 views
2

以下代码是一个较大函数的一部分,它确定某件事是否在线并将代码返回到页面并显示“远程支持”按钮。这适用于所有浏览器,包括IE 7,8。这并不在IE 9.工作将其全部的按钮应该能够点击,但是,IE 9仅110px按钮的顶部部分是可点击的,基本上围绕2px的。javascript:void(0)in href和onClick不能在IE9中工作

有没有办法让这个工作在IE9或没有?

if(strpos($response, "TRUE") > -1){ 
    echo "<a 
href='javascript:void(0)' 
onClick=\"window.open('".$instantChat."','_blank','toolbar=no, status=no, menubar=no, 
titlebar=no, location=no,scrollbars=no, resizable=no, height=570, width=400'); return false;\" 
    class='instantChat' 
>Remote Support</a>" ; 
}else{ 
    echo ""; 
} 

编辑1

我想要清理的代码了一下,我尝试使用button元素,而不是一个锚,但它搞砸了Chrome中并不起作用。

我还可以补充说这个按钮旋转了270度,文字是侧面的。这是打算。

下面是一段简化上述内容但并未解决问题的新代码。

if(strpos($response, "TRUE") > -1){ 
    echo "<a href='javascript:void(0)' onClick='openChat();' class='instantChat'>Remote Support</a>" ; 
}else{ 
    echo ""; 
} 
+0

听起来像你有一个CSS问题,而不是Javascript的问题,基于它的工作原理,但只有当你点击顶部两个像素。 –

+0

@AbdullahJibaly我肯定也有一些麻烦,CSS,因为我是用CSS3和一些元素不支持IE,所以我不得不使用MS-过滤器等。不知道为什么会对仅IE9的效果。 – paradd0x

+0

,因为IE 7和8几乎没有任何CSS3支持 – Huangism

回答

0

我首先想到的是,你不想要一个链接,你想有一个按钮。那么为什么不使用按钮元素?那么你不需要担心javascript:void位。

我也完全抛弃了onclick属性。我怀疑它的大写是出现问题的地方,你可能会修复它。

你最好添加一个data-action ='openChat'属性。然后添加一个处理其他地方处理元素的点击和: 1.检查,如果点击的元素是一个按钮。 2.检查其是否具有一个数据action属性 3.如果有一个数据的动作检查,如果它是openChat。 4.如果是openChat它会打开一个窗口。从视图东西

标准分离模式。

+0

我想在一行中做到这一点,因为编码已经很难了,IE9让事情变得很痛苦。我不明白它为什么在每个浏览器中都能正常工作,但它在IE9中不起作用。 – paradd0x

1

你可以尝试

<a style="cursor:pointer" onclick='openChat();' class='instantChat'>Remote Support</a> 

每一个浏览器不同的方式处理事情。最好的方法是完全取出onclick并为其定义一个jQuery处理程序。就像

$('.instantChat').click(function(){ 
    // open chat code here 
    return false; 
}); 
相关问题