2013-04-16 50 views
0

我有一個.net表單,它有一個自動發回的下拉列表。大多數時候,一切都很好,我得到這個:.net form有時會輸出javascript,但有時候不會。

<td class="frmLabel">Province:</td><td><select name="ctl00$ProvinceDropDown" onchange="javascript:setTimeout('__doPostBack(\'ctl00$ProvinceDropDown\',\'\')', 0)" id="ctl00_ProvinceDropDown"> 

但有時(我會得到的情況下,在第二),我得到這個:

<td class="frmLabel">Province:</td><td><select name="ctl00$ProvinceDropDown" id="ctl00_ProvinceDropDown"> 

注意缺少的javascript這是自動回發。

問題發生的唯一時間是在IE10上。其他瀏覽器都很好。即使在IE9瀏覽器模式或IE10兼容模式下的IE10也沒問題。

很明顯,這感覺像.Net沒有正確識別IE10。而且我知道這個修補程序:

http://support.microsoft.com/kb/2600100

但是:

一)我沒有得到確切的那些症狀,我沒有收到「_doPostBack未定義」。 .net代碼根本不會生成javascript調用。

b)我有另一個沙箱主機,當我移動代碼時,一切都很好,甚至IE10。此主機沒有此修補程序,並且與.net(2.0 SP2,3.0 SP2,3.5 SP1)具有相同版本。

此外,ie.browser文件在兩臺主機上都具有相同的內容,正則表達式行仍然是舊的,這是應該沒有正確檢測IE10的。

<capability name="majorversion" match="^[5-9]" /> 

任何想法?

回答

0

最後,修復程序http://support.microsoft.com/kb/2600100確實解決了問題。奇怪的。我不能說明爲什麼我的非固定主機沒有遇到這個問題,但我要說的最後一件事是沒有問題。

0

嘗試將<meta http-equiv="X-UA-Compatible" content="IE=edge" />添加到您的<head>。也許即使IE = EmulateIE8只是爲了看看是否有任何影響...

+0

我已經想盡X-UA兼容的標籤,我可以在互聯網上找到。然後意識到問題出在第一個頁面請求,.NET框架吐出代碼,而不是IE瀏覽器呈現html。 –

0

編輯web.config文件,並在<system.web>部分添加

<browserCaps> 
      <case match="IE[ /](?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*))"> 
       browser=IE 
       version=${version} 
       majorversion=${major} 
       minorversion=${minor} 
       frames=true 
       tables=true 
       cookies=true 
       javascript=true 
     javaapplets=true 
       activexcontrols=true 
       ecmascriptversion=1.5 
       vbscript=true 
       backgroundsounds=true 
       isMobileDevice="true" 
       <filter match="[4-9]" with="${major}"> 
        ecmascriptversion=1.3 
        css1=true 
        css2=true 
        xml=true 

        <filter match="[5-9]" with="${major}"> 
         w3cdomversion=1.0 
        </filter> 
        </filter> 
        <filter match="^b" with="${letters}"> 
        beta=true 
       </filter>                
      </case></browserCaps> 
相關問題