你如何从Rails 3升级到Rails 3.1 beta?
我们试图让Socket.io flashsockets通过HTTPS/WSS在Internet Explorer 9中运行.flashsockets通过HTTP工作,但HTTPS给我们带来了麻烦.我们使用的是socket.io版本0.8.7和socket.io-client版本0.9.1-1.
我们在端口443上通过SSL运行我们的websocket服务器.我们在正确的位置指定了我们的WebsocketMainInsecure.swf文件的位置(这些是跨域ws请求),我们正在swfobject嵌入中加载文件通过HTTPS.
我们在我们的安全组中为我们的EC2实例打开了端口843,并且通过HTTP成功呈现了交叉源策略文件.它似乎不通过HTTPS呈现(Chrome引发SSL连接错误).
我们尝试了两个版本的WebsocketMainInsecure.swf文件.第一个是Socket.io提供的文件,它是由WebsocketMainInsecure.as构建的,不包括该行
Security.allowInsecureDomain("*");
Run Code Online (Sandbox Code Playgroud)
这会在行SCRIPT16389: Unspecified error.处引发错误WebSocket.__flash.setCallerUrl(location.href).
我们认为这是因为SWF文件不允许HTTPS请求,因此我们将WebSocketMainInsecure.swf文件替换为此repo上的文件:https://github.com/gimite/web-socket-js,因为它包括
Security.allowInsecureDomain("*");
Run Code Online (Sandbox Code Playgroud)
动作脚本代码中的行.当我们使用它时,我们看到flashsocket连接在无限循环中保持断开连接和重新连接.我们在Transport原型的onSocketError函数中将错误跟踪到socket.io库中的transport.js文件.它抛出错误:
[Error: 139662382290912:error:1408F092:SSL routines:SSL3_GET_RECORD:data length too long:s3_pkt.c:503:]
Run Code Online (Sandbox Code Playgroud)
我们甚至尝试将socket.io和socket.io-client更新到版本0.9.6,我们仍然遇到Access is denied错误.
这个错误很难调试,现在我们不知道如何让flashsockets工作.我们想知道它是否可能与使用旧版本的socket.io有关,或者可能是我们的策略文件服务器不接受HTTPS请求,或者甚至可能是来自Web的WebSocketMainInsecure.swf文件的方式 - socket-js github repo是相对于socket.io-client所期望的而构建的.
我遵循了这些说明(除了将可执行文件复制到我的PATH,因为我似乎无法找到它并且似乎没有必要).然后我在我的公共javascripts目录中创建了一个名为image_render.js的文件
console.log('Hello, world!');
phantom.exit();
Run Code Online (Sandbox Code Playgroud)
在里面,保存它,并phantomjs render_image.js在我的终端中运行.但是,我的终端无法识别命令:
-bash: phantomjs: command not found
Run Code Online (Sandbox Code Playgroud)
我做错了什么?
元素有一个javascript style对象,其中包含css样式的不同名称和值.我想在每次更改此对象而不使用轮询时触发函数.有没有办法以跨浏览器兼容的方式执行此操作,并且可以与第三方代码可靠地工作(因为假设您提供了一个插件脚本)?将javascript事件绑定为DOMAttrModified或DOMSubtreeModified不足以因为它们无法在Chrome中运行.
我有这个JQuery代码:
$("p.exclamation, div#notification_box").live("mouseover", function() {
});
Run Code Online (Sandbox Code Playgroud)
我想从jQuery代码中调用这个rails方法作为回调:
def render_read
self.user_notifications.where(:read => false).each do |n|
n.read = true
n.save
end
end
Run Code Online (Sandbox Code Playgroud)
此方法在我的用户模型中.有没有办法做到这一点?
我正在尝试确定是否有任何iframe是跨域的.根据此问题中接受的答案:检测iframe何时是跨域的,然后将其删除,然后将代码访问contentDocumentiframe放入try / catch块中.我在Chrome中尝试使用跨域iframe:
try {
document.getElementsByTagName('iframe')[0].contentDocument;
} catch(err){
console.log("called");
}
Run Code Online (Sandbox Code Playgroud)
它仍然会抛出跨域错误,并且不会捕获错误.
我还试图检查父页面url的协议+主机+端口是否在srciframe中:
function thirdPartyIframe(iframe){
var url = document.location.protocol + "//" + document.location.hostname + (document.location.port === "" ? "" : ":" + document.location.port);
var regexp = new RegExp(url.replace(/\//g, "\\/").replace(/\./g, "\\."));
if (iframe.src === '' || regexp.test(iframe.src)){
return false;
} else {
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
但这似乎不适用于Facebook主页上的第一个iframe,src等于(很长):
"http://www.facebook.com/ai.php?aed=AQLlH2cfdnsnLrDUVyqrQPlWpayw9N09Z_iNuhulevbeEfVa4mcVRcT8cjAZOjQb8y1QXab5Ae3aSEJx49U_Qv35rtSp1VC9cY0_CrpOjMDk40hS_Xm57A996YtRVCcWSuRZ_jZERQ_iA_E4621NAbKHT9dsB7uElkRtTvl5K-zPI0jeH-BEnlZIOXbeEdbRC6qCwoToaltolpe-Ot2KWgkfb_vBZYpzUc3jQoEHzLG6tauO9l_hkXpYpHxnt-KYFKIFZ1PgmrHgb0UcGjeKHl7yBR1AbW2n5XgdgaAhFvBjs5GZlKy566nvl8eLRA60orwkwtWYeN8-gKoAmOLm7-6minsWn8lk1h2Qn3p07HCTSnYHfv1aJ6mF5jmuzP0YYe7Ym9ZbmK-tvax4uPAQJ2OdULilKbEh8M-2V9pVY3AC228OPlrRullZuuOg8DI2A8WeMF-fbbOdOFFVCe5Gj1CaZu3LYXiqdG7mUgY6AEpk9ZzGT4fC2K8DInQo1AypCvzG64C_bEWfODeXe0aGbkWwsUUmO7E5HFg0tvZkK5IAR_xxxQ2rlf5jbcEDo_2gdIDdHe1HT75-SJLUsSA0M8EU01oNNPuWwEC2BW6inepc9QPuqeg42tcEbKLU-rIUnXDBLvgutft8azWPPQ6_LafGjCAmC9uTalagoWLLDMpQOThvPg7YeVd7qg_c9Mzn2GAfuswcxDSxyRIZo9MaOhA6mhfXeE1tmjyBBsMxnx08tO21Jsfgch59fmMxpeJzdsNMPK3FAojfglvCQ2Zrt_6ataexUB4xlM7_PhKrfBPtxb5fe2TE9-nlWruNEpoCrzI05yv4Go3CYEWHob06K_9iICfNVTFkSYGTiJnMXCy_fdgfyzUIn5QJIPRo4-Wnyg444zKAO_nyFW59LqbIanHVfFY6ybiA6KeC3meREWzTPSsrU5d_NbYHlJWb8uPNDR04jaH5e2qiYj3Y8qgLQA5m"
Run Code Online (Sandbox Code Playgroud)
我的功能将其归类为非第三方iframe,但Chrome访问时仍然会引发跨域错误contentDocument.
我正在寻找一种万无一失的跨浏览器方式来做到这一点.
我setTimeout在Node.js中使用它似乎与客户端的行为不同setTimeout,因为它返回一个对象而不是一个数字.我想将它存储在redis中,但由于redis只存储字符串,我需要将对象转换为字符串.但是,使用JSON.stringify抛出循环引用错误.如果我希望能够从redis中获取并调用它,如何将此对象存储在redis中clearTimeout?
我正在使用Devise的内置功能before_filter :authenticate_user!.如果用户未通过过滤器(尝试在注销时执行操作),我想在我的应用程序助手中调用我自己的自定义方法.我该怎么做?
我希望能够调整我使用Paperclip的默认配置文件图像.这是我模型中的代码:
has_attached_file :photo,
:styles => {
:tiny => "25x25#",
:thumbnail => "100x100#",
:small => "150x150>",
:medium => "300x300>" },
:default_url => "/images/default.png"
Run Code Online (Sandbox Code Playgroud)
但是,默认图像不会像用户提交的图像那样调整大小.我怎样才能做到这一点?