我有这个问题,我似乎找不到解决方案...
我有一个页面在初始加载时使用原生 IE7(不是 IE9/IE8 的模拟版本)呈现良好,但在从浏览器缓存提供的后续请求中回落到 IE6 标准模式。 IE7 知道如何处理多个 CSS 类,例如“div.class1.class2”,而 IE6 标准模式则不知道 - 因此我的页面在每次访问时都会中断,但第一次除外。
重现方法如下:
因此,当所有文件都从 Amazon 服务器获得服务时,IE7 会很好地呈现它们,包括包含多个类的 CSS 规则。 (例如“div.class1.class2”)当您尝试使用完全相同的代码重新加载完全相同的页面时,它会以某种方式切换到 IE6 标准模式(不是 Quirks 模式),它不理解链接的 CSS 类并破坏了几个设计,例如按钮。 我尝试添加几个不同的 Doctype/Meta header ,但它们都没有区别,目前该页面是 XHTML Strict 有效并且具有 X-UA-Compatible IE=edge header ,但从缓存加载时仍然无法正确呈现。 我能看出的 header 中唯一的区别是 Not Modified 请求缺少 Content-Type header ,但这应该不是问题,对吧?
最重要的是,当我在本地开发服务器上使用 IE7 打开这个完全相同的页面时,它呈现得很好,即使在重新加载之后也是如此! :/
更新
好吧,我终于可以在开发服务器上重现它了。唯一不同的是“max-age” header ,导致浏览器不在本地缓存任何内容。当我增加缓存时间时,IE7 开始缓存这些文件,一旦从缓存中加载这些文件,这也会再次导致设计中断。 因此,从缓存而不是服务器提供文件一定是个问题。
更新 2
我将范围缩小到 CSS 文件。看起来,当它来自缓存(即没有 Content-Type header )时,IE7 要么以 IE6 模式呈现它,要么在从服务器加载时以 IE7 模式呈现它。 (内容类型:文本/CSS) 有谁知道为什么会这样?也许是一些格式错误的 CSS 规则? 作为解决方法,我现在向样式表添加一个随机参数以防止缓存,这会阻止 IE7 切换到 IE6 模式,但即使从样式表中删除所有错误和警告后问题仍然存在。
最佳答案
不久前,我在支持旧版 IE6 应用程序时遇到了完全相反的行为。
无论如何,你使用 xhtml 1.0 strict doctype,这是一个重要的开始!
首先:通常的 list :
现在准备好这些数据并访问 absolute best source on browsermode-switching我曾经见过,事实上,每本自尊的网络开发书籍都应该在第一章介绍这一点。所有这些好处都在一个清晰的页面上,至少可以说是“启发”..
人们应该知道浏览器模式切换分为两部分,并了解何时会出现什么样的行为。
在同一页上,您还可以找到 IE mode-switching-flowchart这提供了对 IE 确定其最终呈现/浏览器模式所遵循的广泛迷宫的洞察力。
真心希望对您有所帮助!
更新:
没有 IE6(标准/古怪)模式(在较新版本的 IE 中)。查看official microsoft documentation (和 updated link 加上这句话)!!让我引用它:
Windows Internet Explorer 7 offered new features that were designed to more fully support industry standards, such as support for the universal selector. Because the directive only supports two settings (quirks mode and standards mode), IE7 Standards mode replaced Internet Explorer 6 standards mode.
这是他们的 doctype-switch 检查器的代码(同一页面上的源代码):
engine = null;
if (window.navigator.appName == "Microsoft Internet Explorer")
{
// This is an IE browser. What mode is the engine in?
if (document.documentMode) // IE8 or later
engine = document.documentMode;
else // IE 5-7
{
engine = 5; // Assume quirks mode unless proven otherwise
if (document.compatMode)
{
if (document.compatMode == "CSS1Compat")
engine = 7; // standards mode
}
// There is no test for IE6 standards mode because that mode
// was replaced by IE7 standards mode; there is no emulation.
}
// the engine variable now contains the document compatibility mode.
}
现在阅读上面微软代码中的注释!!!!
关于您的第二次更新:
很好地找到了缓存!所以 css 现在是问题所在。既然你现在开始理解为什么旧的 IE6 应用程序需要 IE6(IE6 很难被杀死的原因),也许你应该看看 conditional comments .由于:
在它们中,您可以包含指向 IE 特定 css 的链接(保持文档小、精简和整洁)...
关于html - 从缓存渲染 CSS 时,IE7 回退到 IE6 标准模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11654928/
我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h
我在MiniTest::Spec和Capybara中使用以下规范:find_field('Email').must_have_css('[autofocus]')检查名为“电子邮件”的字段是否具有autofocus属性。doc说如下:has_css?(path,options={})ChecksifagivenCSSselectorisonthepageorcurrentnode.据我了解,字段“Email”是一个节点,因此调用must_have_css绝对有效!我做错了什么? 最佳答案 通过JonasNicklas得到了答案:No
我想要做的是有2个不同的Controller,client和test_client。客户端Controller已经构建,我想创建一个test_clientController,我可以使用它来玩弄客户端的UI并根据需要进行调整。我主要是想绕过我在客户端中内置的验证及其对加载数据的管理Controller的依赖。所以我希望test_clientController加载示例数据集,然后呈现客户端Controller的索引View,以便我可以调整客户端UI。就是这样。我在test_clients索引方法中试过这个:classTestClientdefindexrender:template=>
在我的Controller中,我通过以下方式在我的index方法中支持HTML和JSON:respond_todo|format|format.htmlformat.json{renderjson:@user}end在浏览器中拉起它时,它会自然地以HTML呈现。但是,当我对/user资源进行内容类型为application/json的curl调用时(因为它是索引方法),我仍然将HTML作为响应。如何获取JSON作为响应?我还需要说明什么? 最佳答案 您应该将.json附加到请求的url,提供的格式在routes.rb的路径中定义。这
所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择
我正在使用Rails构建一个简单的聊天应用程序。当用户输入url时,我希望将其输出为html链接(即“url”)。我想知道在Ruby中是否有任何库或众所周知的方法可以做到这一点。如果没有,我有一些不错的正则表达式示例代码可以使用... 最佳答案 查看auto_linkRails提供的辅助方法。这会将所有URL和电子邮件地址变成可点击的链接(htmlanchor标记)。这是文档中的代码示例。auto_link("Gotohttp://www.rubyonrails.organdsayhellotodavid@loudthinking.
我正在学习http://ruby.railstutorial.org/chapters/static-pages上的RubyonRails教程并遇到以下错误StaticPagesHomepageshouldhavethecontent'SampleApp'Failure/Error:page.shouldhave_content('SampleApp')Capybara::ElementNotFound:Unabletofindxpath"/html"#(eval):2:in`text'#./spec/requests/static_pages_spec.rb:7:in`(root)'
我有一个div,它根据表单是否正确提交而改变。我想知道是否可以检查类的特定元素?开始元素看起来像这样。如果输入不正确,添加错误类。 最佳答案 试试这个:browser.div(:id=>"myerrortest").class_name更多信息:http://watir.github.com/watir-webdriver/doc/Watir/HTMLElement.html#class_name-instance_method另一种选择是只查看具有您期望的类的div是否存在browser.div((:id=>"myerrortes
无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD
我正在尝试将一个简单的CSV文件读入HTML表格以在浏览器中显示,但我遇到了麻烦。这就是我正在尝试的:Controller:defshow@csv=CSV.open("file.csv",:headers=>true)end查看:输出:NameStartDateEndDateQuantityPostalCode基本上我只获取标题,而不会读取和呈现CSV正文。 最佳答案 这最终成为最终解决方案:Controller:defshow#OpenaCSVfile,andthenreaditintoaCSV::Tableobjectforda