Webkit在ASP.NET 3.5中突出显示颜色包括ScriptManager的页面颜色

问题描述:

我们正在开发一个使用ASP.NET 3.5的jQuery Mobile应用程序,而且我们遇到了很多大的,奇怪形状的问题,并且很让人分心强调。我发现在页面中包含一个ScriptManager似乎是罪魁祸首,就我们而言。这是一个简单的.aspx页面,可以重现问题(我正在测试Android 2.2.2和iOs 4.2.6)。Webkit在ASP.NET 3.5中突出显示颜色包括ScriptManager的页面颜色

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication2.Default" %> 
    <!DOCTYPE html> 
    <html lang="en-US"> 
    <head> 
     <title>Title</title> 
     <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.2.min.js"> </script> 
    </head> 
    <body> 
     <form id="form1" runat="server"> 
      <asp:ScriptManager runat="server" ID="ScriptManager"></asp:ScriptManager> 
      <h1>Oh Hai!</h1> 
     </form> 
    </body> 
    </html> 

使用ScriptManager,那h1标签将产生水龙头突出每它触动时间。丢失ScriptManager,轻拍突出显示消失。假设的ScriptManager是必要的,有什么比做类似更好:

<script type="text/javascript"> 
    $(function() { 
     $('*').css('-webkit-tap-highlight-color', 'rgba(0, 0, 0, 0)'); 
    }) 
    </script> 

添加CSS规则,我们的样式表是不行的,因为使用ScriptManager的客户端初始化似乎以某种方式将其覆盖。

ScriptManager是增加点击处理程序的表单元素,所以实际上WebKit是在表单上拦截点击 - H1恰好是内从一个DOM的观点。

您可以通过在<H1></H1>标签后面移动<form>标签来证明这一点,当然这对于您的所有元素来说都不实用。

我想加入“-webkit抽头高亮颜色”的方法是有效的,但也许你需要脚本管理器后要做到这一点确实它的东西:

 $(document).ready(function(){ 
    $('*').css('-webkit-tap-highlight-color', 'rgba(0, 0, 0, 0)'); 
     }); 

你也可以用添加实验css内联到特定的form/h1元素,以消除css级联或脚本问题。