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サポートがオンになっている場合(XHTMLではデフォルト)、hamljavascriptフィルターがこれを行います。

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

scriptタグ内に HTML があるのはなぜですか? それが問題だと確信しています。@campaign のbrを含むすべてを削除する必要があります。

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