close

asp.net 的 menu 元件 在 Chrome瀏覽器怪怪的問題,可以在Google上找到一堆相同的文章

原則上也都是正確的,至少我自己測試過是ok的~

 

只是,我遇到一個更詭譎複雜的狀況,就是剛好我的Menu元件下面,剛好緊接著一個Flash的Object 內嵌物件

讓我們一個一個來吧

 

解決 Chrome 的顯示問題,直接問Google就會有答案了
所以 就不多解釋了

只要在專案中加上App_Browsers的資料夾,這是一個特殊的資料夾,所以按右鍵> 加入Asp.Net 資料夾 > App_Browsers

然後在該資料夾內新增項目 >"瀏覽資訊檔" > 命名為 Chrome.browser 的檔案(可以自行命名)

 

如果不想這麼囉嗦 直接 加入新項目 ,選擇 "瀏覽資訊檔" 確定新增後 就會問你要不要建立該資料夾,並放進去了

加入後會直接開啟剛剛新增的檔案,預設內容可以刪掉 修改如下


<browsers>
  <browser id="Safari" parentID="Safari1Plus">
    <identification>
      <userAgent match="Safari/\d+\.\d+" />
    </identification>
    <capture>
      <userAgent match="Version/(?'version'\d+\.\d+)" />
    </capture>
    <capabilities>
      <capability name="browser" value="Safari" />
      <capability name="version" value="${version}" />
    </capabilities>
    <controlAdapters>
      <adapter controlType="System.Web.UI.WebControls.Menu"
      adapterType="" />
    </controlAdapters>
  </browser>
  <browser id="GoogleChrome" parentID="Safari">
    <identification>
      <userAgent match="Chrome/(?'version'\d+\.\d+)" />
    </identification>
    <capabilities>
      <capability name="browser" value="Googlebot" />
    </capabilities>
  </browser>
</browsers>


Google Chrome以及Safari 就可以正常顯示ASP.Net的Menu Control 了

接下來,如果去問Google有關Flash覆蓋的問題 ,可以找到在Flash 的 object 標籤 物件加入屬性的解決辦法
<param name="wmode" value="transparent"> 
使flash的背景在網頁中透明、不擋住html圖層 

<param name="wmode" value="opaque"> 
使flash的背景在網頁中不透明、不擋住html圖層

通常到這裡應該就可以下課了
但是很遺憾,問這個問題的地方,文章發表在一般的HTML網頁設計中
或者使用DreamWeaver,又或者Javascript...等

而不是ASP.net..........所以,在應該買樂透的這天,就讓我遇上了這麼機車的問題大合體
幸好,有找到另一個解決辦法~而且這個也跟Asp.net無關

懶得打字~所以就直接轉載吧
原文所在:http://www.superpay.com.tw/2009arts/Article/d/3220.html

內容如下

Flash覆蓋div解決方案
  2008-11-26 9:29:57
  有兩種方法:一種就是設置flash為透明,但是如果你在DW中插入動畫,再加
  <param name="wmode" value="transparent">
  是不生效的。要把整個的flash插件代碼換成如下:
  <object type="application/x-shockwave-flash" data="" width="560" height="210">
  <param name="movie" value="" />
  <param name="wmode" value="transparent" />
  </object>
  對比一下,和DW自動生成的代碼是有區別的,測試過,IE FF 均可以。

  第二種方法:
  設置flash置底,加個代碼:<param name="wmode" value="opaque" />
  但是只加這個代碼,IE可行,在FF下,失效。要想在FF下起作用,還要用在<object 里加個 wmode="opaque" ,實例代碼如下:
  <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="" width="560" height="210">
  <param name="movie" value="" />
  <param name="quality" value="high" />
  <param name="wmode" value="opaque">

  <embed src="" wmode="opaque" quality="high" pluginspage="" type="application/x-shockwave-flash" width="560" height="210"></embed>
  </object>


  另外一種方法是:
  將flash object 改變
  <style>
  div {
  width:100px;
  height:100px;
  position:absolute;
  top:20px;
  left:20px;
  background:red
  }

  object {
  width:400px;
  height:100px;
  }
  </style>

  <div>aaaa</div>
  <object type="application/x-shockwave-flash" data="">
  <param name="movie" value="" />
  <param name="wmode" value="transparent" />
  </object>

以上報告完畢,

arrow
arrow
    全站熱搜

    ADOLPH 發表在 痞客邦 留言(0) 人氣()