IE6,7,8以及Firefox,Chrome下各种选择器的优先

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IE6,7,8以及Firefox,Chrome下各种选择器的优先相关的知识,希望对你有一定的参考价值。

IE6,7,8以及Firefox,Chrome下各种选择器的优先级的问题,最近在给一个古董级的项目做维护,改修,这个项目的样式写的很垃圾,行内的,外链的,头部的,而且各种选择器互相冲突,技术难度不大,改起来耗时费力还很让人上火的那种~

兼容性方面应该选IE8,因为IE8出来几年了,已经能很好的兼容绝大部分网站,而且安全上比IE6、7要好一些,速度上也要快一些。注重速度的话建议选择chrome,打开网页速度快得很(如果可以的话,枫树浏览器作为一款双内核的浏览器,chrome的改造版,可以比较好的适合大多数人的使用),火狐的话,速度也不赖,但比chrome要差一些,但如果你想要一次打开很多的网页而不想浏览器假死并且减少浏览器对系统资源的占用的话,火狐比较适合你。追问

谢谢,我的问题没写清楚,仍您误会了,不好意思

追答

如果是这样的话,IE8会比较好,毕竟它是微软自己的浏览器,而且其中带有方便的开发人员工具,比较适合你。

追问

大哥,您误会了,我不是选浏览器,IE6,7,8,Firefox,Sarifa,Chrome,Opera我这里都有,我目的是解决页面问题,不是问那个浏览器好用,还是谢谢你了~

参考技术A   您好,感谢您对火狐的支持

  网页开发优先执行W3C标准,这样火狐和谷哥下就不会有问题,然后再针对IE做兼容,这种方式比较省时省力。
  您可以在火狐官方网站下载火狐浏览器,在火狐社区了解更多内容。希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。

AJAX 在 IE 中运行良好,但在 Firefox\Chrome 中运行良好(奇怪 :))[重复]

【中文标题】AJAX 在 IE 中运行良好,但在 Firefox\\Chrome 中运行良好(奇怪 :))[重复]【英文标题】:AJAX works fine in IE but not in Firefox\Chrome (Bizarre :) ) [duplicate]AJAX 在 IE 中运行良好,但在 Firefox\Chrome 中运行良好(奇怪 :))[重复] 【发布时间】:2013-09-27 20:36:21 【问题描述】:

我使用的是 IE 10、Firefox 24、Chrome 29。

我有一个在 ASP.NET MVC 4 (IIS 8) 上运行的服务器,控制器中有一个简单的功能:

[HttpPost]
public ActionResult Register(string PhoneNumber, string DisplayName)

    // Some commented code here ...
    ViewBag.Message = "Working!";
    return View();

视图如下:

@
    ViewBag.Title = "Register";

@ViewBag.Message

Ajax 调用如下所示:

$.ajax(
    type: "POST",
    url: "http://localhost:1283/home/Register",
    data: 
        phoneNumber: "123",
        displayname: "Miko"
    ,
    success: function (response) 
        alert("In success: " + response);
    ,
    error: function (result) 
        alert('In error: '+ result);
    
)

在所有浏览器中,都会进行 AJAX 调用,服务器中的 Register() 会被触发,但完成后,此代码在 Internet Explorer 中运行良好,但使用 Firefox\Chrome 时总是会出现“error()”。

如何使这些功能也适用于 Firefox 和 Chrome?

谢谢。

【问题讨论】:

你知道错误是什么吗?也尝试在 ajax 设置中给出dataType:"html"contentType:"application/json" url: "localhost:1283/home/Register" ,可能是跨站请求造成的,看看chrome中的console吧。我觉得你应该把前端和服务设置在同一个主机上。跨度> (PSL) 我不知道是什么错误。我已经在 AJAX 调用中添加了这两行,但仍然无法正常工作。 (Mithril) 在 Chrome 的控制台中我收到此消息:XMLHttpRequest cannot load localhost:1283/home/Register。 Access-Control-Allow-Origin 不允许 Origin null。 @MikoDiko 您的问题是域不匹配。因此尝试将请求标头中的来源设置为响应标头中的来源或将其设置为 *. 【参考方案1】:

首先,我认为你必须看看Access_control_CORS。

在 MVC.NET 中有一个简单的方法可以解决这个问题。 将以下代码添加到 Global.asax

    protected void Application_BeginRequest(object sender, EventArgs e)
    
        if (!string.IsNullOrWhiteSpace(Request.Headers["Origin"]))
        
            if (IsOriginInCrossDomainWhiteList(Request.Headers["Origin"]))
            
                Response.AddHeader("Access-Control-Allow-Origin", Request.Headers["Origin"]);
            
            else
            
                Response.End();
            
        
    

    internal static bool IsOriginInCrossDomainWhiteList(string origin)
    
        Uri uri;
        if (Uri.TryCreate(origin, UriKind.Absolute, out uri))
        
            foreach (var whiteDomain in Properties.Settings.Default.CrossDomainWhiteList)
            
                if (string.Compare(uri.Host, whiteDomain, true) == 0)
                
                    return true;
                
            
        
        return false;
    

并向 Web.config 添加一些域,例如:

  <applicationSettings>
     <YourProject.Properties.Settings>
      <setting name="CrossDomainWhiteList" serializeAs="Xml">
        <value>
          <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <string>www.youhost.com</string>
          </ArrayOfString>
        </value>
      </setting>
     </YourProject.Properties.Settings>
  </applicationSettings>

那么就可以在CrossDomainWhiteList中添加的域使用ajax调用了。

【讨论】:

以上是关于IE6,7,8以及Firefox,Chrome下各种选择器的优先的主要内容,如果未能解决你的问题,请参考以下文章

Javascript关闭IE6,IE7,IE8和Firefox没有确认框?

Echarts学习

在 IE6 和 IE7 中将宽度正确拉伸到内联块元素的 100%

前端工程师必备技能储备

跨度与 ie6 中的 h1 不对齐

浏览器史话中chrome霸主地位的奠定与国产浏览器的割据混战