2013-04-25 91 views
0

我有一个其他人在其网站上使用的JavaScript文件。它创建了一个按钮,会加载我们的服务器上承载的css文件:在javascript中加载动态CSS代码

 
style.setAttribute('href', 'http://mysite.com/assets/some.css'); 

使用者能够在他们的网站,像这样:

<script type="text/javascript" src="http://mysite.com/global.js"></script> 

我想给用户的能力,上传他们自己的CSS文件到我的网络应用程序中,取代我在global.js中设置的那个。

目前,我在Users表中添加了custom_css:binary列,该列将保存CSS文件,但这需要用户在网站上保持登录状态。我不确定这是否是解决这个问题的正确方法,或者是否有更好的方法来做到这一点。另外,这种方法有哪些安全风险?

我使用RoR作为后端。

任何帮助将是伟大的!

更新1

我能够存储上传的JS文件并加载自定义CSS,但它目前检查current_user - 这意味着样式表将不会被渲染为用户。我该如何解决这个问题?

+0

在标题中添加CSS元素: http://stackoverflow.com/questions/707565/how-do-you-add-css-with-javascript/6211716#6211716 – 2013-04-25 21:03:34

回答

0

我能够自己找到解决方案。

有几种方法可以解决这个:

  1. 添加查询字符串的JS SRC
  2. 刮为得到由脚本

我选择产生某一个元素的页面对于选项1.当我检测到动态生成的查询字符串时,我将它发送给params哈希中的控制器,并相应地加载该css文件。