2012-05-10 61 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; 
}); 
相關問題