标签: opera

Rails(set_no_cache方法)无法在Safari和Opera中禁用浏览器缓存

在使用Devise进行身份验证后,我发现存在一个安全漏洞,在用户注销后,会话变量被保留.这允许任何人按下后退按钮并访问登录用户的上一屏幕.

我看了这些帖子 Num 1 Num 2 Num 3

我将这些行添加到application_controller中

before_filter :set_no_cache
def set_no_cache
response.headers["Cache-Control"] = "no-cache, no-store, max-age=0, must-revalidate"
response.headers["Pragma"] = "no-cache"
response.headers["Expires"] = "Fri, 01 Jan 1990 00:00:00 GMT"
end
Run Code Online (Sandbox Code Playgroud)

在_form.html.erb中,我在顶部添加了这个

<%if user_signed_in? %>
<%=link_to "Sign Out",  destroy_user_session_path, :method => :delete %><br/>
<%= form_for(@listing) do |f| %>
<% if @listing.errors.any? %>
...........
Run Code Online (Sandbox Code Playgroud)

然后我在Firefox,Chrome和Safari上测试了该应用程序.

Firefox和Chrome很好,因为我退出并点击了后退按钮,无法看到用户的上一个屏幕,但是,在Safari和Opera中,不安全的行为仍然存在.此代码没有效果.

对于如何解决这个问题,有任何的建议吗?

谢谢

ruby safari opera ruby-on-rails browser-cache

12
推荐指数
1
解决办法
7154
查看次数

window.location.replace(href)后面的后退按钮失败;

我做了一个简单的函数,使所有容器的行为像链接("a"元素).

function allHot(element){
$(element)
.click(
    function(){
    var href = $(this).find('a').attr('href');
    window.location.replace(href);
})

.hover(
    function(){
    $(this).css({'text-shadow' : '0px 1px 0px #D6D6D6'});
    },
    function(){
    $(this).css({'text-shadow' : 'none'});
    }

);
}
Run Code Online (Sandbox Code Playgroud)

功能很棒.用户可以单击容器上的任何位置并正确重定向,而不是单击"更多"按钮.

但是,如果用户在重定向后点击后退按钮,则浏览器会返回两步而不是一步.更奇怪的是,历史看起来还不错.

简单方案以更好地描述:

第1页 - >第2页

Page2 [用户点击"allHot"容器] - > allHot重定向到Page3

Page3 [用户点击浏览器后退按钮] - > Page1

这是我正在努力的网站的主要错误.我真的没有预防它的线索.在Firefox,Chrome和Opera上测试了Bug.

也测试了Opera"没有javascript模式".如果禁用了javascript,则不会发生问题.

提前感谢任何线索或解决方案.

javascript firefox jquery opera google-chrome

12
推荐指数
2
解决办法
2万
查看次数

用户选择Opera 10.62和IE9吗?

我一直试图申请user-selectOpera 10.62和IE9但没有成功.我不能/不会用JavaScript绑定事件preventDefault(),因为有很多地方要设置不可选,我仍然需要在几个地方保留选择.实际上,我希望整个文档的默认行为是不可选择的,至于我在样式表中设置了以下内容:

* {
    -o-user-select: none;
    -webkit-user-select: none;
    -moz-user-select: -moz-none;
    -khtml-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
Run Code Online (Sandbox Code Playgroud)

Firefox 4,Chrome 7和Safari 5的一切都运行良好.只有IE9和Opera 10.62无法正常工作.有任何想法吗?

PS:我的目标是现代浏览器.

css opera internet-explorer

11
推荐指数
1
解决办法
1万
查看次数

关于Opera bug的jQuery动画滚动顶部

有没有人尝试使用过

$(“html, body”).animate({scrollTop:0}, 'slow');
Run Code Online (Sandbox Code Playgroud)

在Opera浏览器上?

它会产生一种奇怪的效果,特别是如果你在一个长页面上滚动,它似乎首先到达顶部,然后向下滚动到正确的点.这是一种奇怪的令人不安的影响......

有没有解决方法来解决它?谢谢

javascript jquery opera dom

11
推荐指数
2
解决办法
5483
查看次数

window.resize在chrome和opera中不起作用

window.resize不能用于chrome和opera ..如何使它工作?

javascript opera google-chrome

11
推荐指数
2
解决办法
3万
查看次数

Opera(和Chrome)正在改变我的图像颜色!为什么?怎么阻止?

在此输入图像描述

链接到这个图片:img

Firefox按原样显示此图像.

但是,如果我用Opera Gray打开它,颜色会有所不同,如果我下载并用任何编辑器打开.为什么?

歌剧是如何向我展示我的形象的: 在此输入图像描述

这是真实的图像颜色: 在此输入图像描述

更多图片(只是想知道)

在此输入图像描述 在此输入图像描述

如何让我的png在所有浏览器中显示原生.(与FireFox或IE或Windows图片浏览器一样)

browser opera png color-profile

11
推荐指数
1
解决办法
6703
查看次数

为什么文本缩进在其容器具有:before /:after伪元素时不起作用?(FX /歌剧)

今天进入这个怪癖.

http://jsfiddle.net/UJAjD/3/

您会注意到在Firefox 7和Opera中,灰色框中包含单词"Next".CSS包含一个text-indent属性,该属性应该将该文本移动到其容器之外.在IE或Chrome中查看此页面会以应有的方式显示该页面.至少你认为它应该显示的方式.

这是一个已知的错误?有解决方法吗?

css firefox opera text-indent pseudo-element

11
推荐指数
1
解决办法
3432
查看次数

SSE(EventSource):为什么不超过6个连接?

在重载我的机器之前,我想看看我可以设置多少同步SSE(也称为EventSource)连接.但是使用Firefox(Firefox 18或Firefox 20)测试它在6个连接处停止:附加连接没有错误,但不发送任何数据.(在Firebug中,我可以在那里看到它们,等待连接.)Chromium 25也在6个连接处停止,Opera 12.15也是如此.但它似乎不是服务器端限制(我使用Apache + PHP),因为我可以同时运行所有三个浏览器(即18个连接),并且所有都来自相同的IP地址.(服务器和客户端位于同一台计算机上,但使用的是172.16.xx地址,而不是127.0.0.1.)

所以,我用CORS设置测试,并尝试连接到另一台具有全局IP的服务器.这次我获得了12个Firefox连接.建议它毕竟是Apache配置?不,Opera仍然只有6个连接.(Chrome没有号码,因为CORS似乎不起作用.)我也可以连接两台服务器,在Firefox中共有18个连接(但从不再连接),在Opera中共有12个连接.

作为第三个测试,我将后端和html移动到远程服务器,并以这种方式加载页面.这次我达到了Firefox的10个连接限制!?!Opera仍然有6的限制.而Chromium(由于这次没有涉及CORS,因此有效)限制为6.

我很欣赏任何关于这个数字6来自哪里的见解,以及所有三个浏览器是否相同的巧合.特别是任何洞察Firefox为何有时为6,有时为10,有时为12.(SSE规范似乎未定义最大连接数.)


Apache配置是使用prefork,这意味着这些设置:

StartServers          5
MinSpareServers       5
MaxSpareServers      10
MaxClients          150
MaxRequestsPerChild   0
Run Code Online (Sandbox Code Playgroud)

(本地(Ubuntu 10.04)和全局(Ubuntu 11.10)服务器在这里具有相同的Apache设置.)我认为关键数字是MaxClients是150.我做了一个快速实验,将StartServers更改为50而不是5,但是相同结果.


这是客户端HTML/javascript(1或2行取消注释,如果你想实验连接到不同的服务器那么修改;如这里给出的,它希望在与HTML相同的目录中找到sse.php):

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>SSE Stresstest</title>
</head>
<body>
<p id="err"></p>
<p id="x"></p>
<script>
function start(){

function onMessage(e){
document.getElementById('x').innerHTML+=e.origin+":"+this.dummy_n+":"+e.data+"<br/>";
};

function onError(e){
document.getElementById('err').innerHTML+="ERR:"+this.dummy_n+":"+JSON.stringify(e)+"<br/>";
};

for(var n=1;n<=32;++n){
    //NB. 't' primarily to avoid caching
    var url='sse.php?dummy_n='+n+'&t='+(new Date().getTime());
    //if(n%2==0)
    //    url='http://example.com/sse.php?dummy_n='+n+'&t='+(new Date().getTime());
    var es=new EventSource(url);
    es.dummy_n=n;   //So we can identify each one
    es.addEventListener('error',onError,false);
    es.addEventListener('message',onMessage,false); …
Run Code Online (Sandbox Code Playgroud)

apache firefox opera google-chrome server-sent-events

11
推荐指数
1
解决办法
7702
查看次数

Selenium WebDriver和Opera Driver

我想在Opera上运行我的Selenium WebDriver测试,但是当我在Selenium HQGitHub页面上查看Opera驱动程序,它说:

Opera Driver需要Opera 12.x及更早版本

请注意,OperaDriver仅在12.16之前与基于Presto的Operas兼容.不支持基于闪烁的歌剧(15及以上).

Opera现在达到了22.0版本,远远超出了12的最大支持版本.所以,我的问题是: -

  1. 如果Selenium没有Opera驱动程序,那么如何自动化Opera测试呢?
  2. 在版本12停留似乎很奇怪,甚至考虑到底层技术变化.Opera支持是否会减弱,或者Selenium WebDriver不再是最好的工具吗?

opera selenium operadriver selenium-webdriver

11
推荐指数
2
解决办法
3万
查看次数

在HTML代码中嵌入SVG文件时,如何在不同的浏览器上生成相同的结果?

我开始在谷歌地图上为我之前的问题覆盖SVG图解决方案.

但我有另一个(较小的)问题.我正在使用Firefox 3.5和Safari 4(在Mac上),当我在XHTML中嵌入SVG时,我根本没有相同的结果.

我可以使用<object><embedded>元素(但我认为最后一个被弃用).我这样使用它们:

<div id="map_canvas" style="width: 900px; height: 900px">
  <object data="test.svg" width="100%" height="100%" type="image/svg+xml"/>
</div>
Run Code Online (Sandbox Code Playgroud)

并且SVG的大小和规模与Firefox和Safari不同.在我的SVG中width,height和,viewBox都被定义了.

有没有办法在所有浏览器中获得相同的结果(我不关心不支持SVG的IE ...所以"所有浏览器"至少意味着最新版本的Firefox,Opera和Safari) ?? 也许我忘了定义的东西?

编辑:我也注意到,使用<object>,SVG是透明的FF,但不透明的Safari ... :(是否有"标准"的方式来包含SVG?

谢谢您的帮助

html safari firefox opera svg

10
推荐指数
1
解决办法
6864
查看次数