好的,我有一个我需要为网站获取的广告系列JavaScript。该网站在ssl下,而广告系列并非如此,浏览器会阻止请求
因此,我正在通过application_controller
执行请求before_filter :get_campaign
def get_campaign
uri = URI.parse("http://us1.campaign-archive1.com/generate-js/?u=2f77d2f8c77398c0b064223ba&fid=1&show=3")
begin
@campaign = Net::HTTP.get_response(uri).body
end
end
在视图中我做
%script{:language => "javascript", :type => "text/javascript"}
= @campaign.try(:html_safe)
因为@campaign
是一个document.write字符串...但由于某种原因它不写...我错过了什么或有更好的方法来实现这个
更新
在Chrome中查看控制台后,我看到此错误Uncaught SyntaxError: Unexpected token <
这是我生成的代码
<script language='javascript' type='text/javascript'>
document.write("<div class=\"display_archive\"><div class=\"campaign\">08\/29\/2012 - <a href=\"http:\/\/us1.campaign-archive1.com\/?u=2f77d2f8c77398c0b064223ba&id=4c4d33ed6f\" title=\"Ten Fun Facts and Figures from Gen Con Indy 2012\" target=\"_blank\">Ten Fun Facts and Figures from Gen Con Indy 2012<\/a><\/div><\/div>");
<br>
<div class='display_archive'></div>
<div class='campaign'>
Select
<a href='http://eepurl.com/jkmGT' target='_blank'>HERE</a>
to sign up for our newsletter!
</div>
</script>
答案 0 :(得分:1)
您下载的Javascript片段包含无法使用未转义的字符,并且您正在阻止转义的发生。通常一个人将这种东西包装在CDATA标签中。如果打开CDATA支持,haml javascript过滤器会为您执行此操作(默认情况下为XHTML):
:javascript
#{@campaign}
答案 1 :(得分:0)
为什么在脚本标记内包含HTML?我很确定问题是什么,你应该从@campaign中删除 br 中的所有内容。
@campaign.gsub!(/<br.*/, "")