2010-08-27 47 views
7

我有奇怪的問題。當我點擊IE7中的鏈接時,窗口最小化。它似乎只是頁面上鍊接的一個子集。它也不會始終發生在同一個鏈接上,並且因計算機而異。當鏈接被點擊時,IE隨機最小化

例如鏈接文本:
<a hidefocus="on" href="#" tabindex="1"><span unselectable="on" id="extdd-102">Canadian Legislation</span></a>

沒有人見過這個或有任何想法可能造成的呢?

回答

15

終於搞明白了。它實際上是定製的JavaScript點擊處理程序,導致問題

我的點擊處理程序在當前活動元素上調用activeElement.blur();(這樣當元素被銷燬時,與模糊相關的事件被觸發)。

問題出在IE中,如果你對任何不是INPUT的模糊調用,它會最小化窗口。

+2

這個模糊()函數調用是第一個谷歌響應,我得到了同樣的問題,但解決方案是不一樣的。當你試圖模糊一個隱藏的輸入時,IE似乎完全一樣。或者是一個未附加的輸入。 – Magus 2012-12-03 17:20:57

+2

是恨IE的另一個原因! – geedubb 2013-06-10 14:47:55

+0

這是關於世界上稱爲IE的最好工具的邏輯。 :-P在2015年閱讀本文時,請停止使用和開發IE 7,8和9,並且最重要的是:不要試圖在舊版軟件中修復錯誤,以使您的客戶受到歡迎。請不要爲了更好的互聯網世界而做。 – Codebeat 2015-04-14 05:35:02

0

IE是越野車,所以你可以通過刪除「tabindex」來排除故障。如果這不起作用,請嘗試刪除「不可選擇」,然後「隱藏焦點」。 「Hideonfocus」聽起來很奇怪。嘗試先刪除。你有任何第三方程序或插件與IE交互?它在另一臺計算機上工作嗎?

0

這發生在我使用模糊解決方法獲取佔位符屬性以在IE8上工作時。 在解決方法中,我應該調用blur(),導致瀏覽器模糊(最小化爲托盤)。 的解決方案是使用:

$.each($('[placeholder]'), function(i,item){ item.blur();}); 

它僅是具體叫什麼模糊的。

完整的佔位符的解決方法是:

$('[placeholder]').focus(function() { 
    var input = $(this); 
    if (input.val() === input.attr('placeholder')) { 
     input.val(''); 
     input.removeClass('placeholder'); 
    } 
}).blur(function() { 
    var input = $(this); 
    if (input.val() === '' || input.val() == input.attr('placeholder')) { 
     input.addClass('placeholder'); 
     input.val(input.attr('placeholder')); 
    } 
}).blur(); 

$(window).on('load', function() { 
    if ($('[placeholder]').length){ 
    $.each($('[placeholder]'), function(i, item){item.blur();}); 
    } 
}); 
4

我對Internet Explorer中的同一個問題10

  • 的Internet Explorer 10測試行爲:

此問題只發生在你調用document.body元素的blur()函數。

問題可以在您的瀏覽器控制檯中簡單執行

 document.body.blur()
進行重現。

  • 在這個問題上發生了常見的場景:

document.activeElement.blur()函數調用是在document.activeElement.blur的第一次調用後出現,因爲這個問題最常見的場景( )body元素將成爲activeElement,隨後調用document.activeElement.blur()將調用body元素上的模糊。

  • 解決方案:

避免document.body的。模糊()函數調用,如果您有jQuery的,你可以介紹這個簡單的邏輯

 $(yourObj).is('body')

檢查,如果你的目標是body元素,以避免它

+0

偉大..非常有用! – Xstian 2015-04-07 13:49:42