0

好的,所以我有一个需要为网站获取的广告系列 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>
4

2 回答 2

1

您正在下载的 Javascript 片段包含无法使用未转义的字符,并且您正在阻止转义的发生。通常将这类东西包装在 CDATA 标记中。如果打开了 CDATA 支持,haml javascript 过滤器会为您执行此操作(默认情况下,它适用于 XHTML):

:javascript
  #{@campaign}
于 2012-11-10T10:07:35.700 回答
0

为什么脚本标签中有 HTML?我很确定这就是问题所在,您应该从@campaign 中删除所有内容,包括br

@campaign.gsub!(/<br.*/, "")
于 2012-11-10T11:55:42.603 回答