在我尝试的大多数浏览器中,一旦浏览器解析CSS,RGBa值似乎就会改变.
例如,以下CSS:
background-color: rgba(255, 0, 0, 0.5);
Run Code Online (Sandbox Code Playgroud)
通过jQuery.css('background-color')或本机CSSStyleDeclaration.getPropertyValue('background-color')访问时,提供以下CSS值:
rgba(255, 0, 0, 0.498039)
Run Code Online (Sandbox Code Playgroud)
这是一个更多例子的小提琴:http://jsfiddle.net/hgFEj/3/
Chrome和Safari会产生不同的结果.Firefox似乎是唯一报告输入的确切值的浏览器.这是一个bug还是设计?
我正在使用"数据"URI以编程方式创建iframe:
<iframe id="myFrame" src='data:text/html;charset=utf-8,<!DOCTYPE html><html><head></head><body><h1>Hello.</h1></body></html>'></iframe>?
Run Code Online (Sandbox Code Playgroud)
此框架加载正常,但似乎以编程方式使用iframe命中跨域安全检查.
var iframeDoc = document.getElementById('myFrame').contentWindow.document;
$(iframeDoc.body).find('h1').text('Changed');
Run Code Online (Sandbox Code Playgroud)
在Chrome和Safari中引发错误:
不安全的JavaScript尝试使用URL数据访问框架:text/html; charset = utf-8,...来自URL的URL http:// ...请求访问的框架具有"http"协议,正在访问的框架有一个''的协议.协议必须匹配.
这是一个显示安全错误的小提琴:http://jsfiddle.net/bhGcw/4/
Firefox和Opera不会抛出此异常并允许更改iframe内容.似乎Webkit看到了数据URI的空白协议,并将其视为跨域违规.
有没有办法解决?