【Visualforce】csv出力で、出力ファイルにscriptが吐かれる。SfdcApp.Visualforce.viewstate.ViewstateSender.sendViewstate

Salesforce

VisualforceでCSV出力を作ろうとしていた時の話。

開発者ガイドの<apex:page>タグを見てみると、どうやらcontentType属性にcsvを指定すればできそう。さっそく簡単なサンプルを作って試してみたところ・・・

ちなみにdataListListは空っぽの状態にしたので空のCSVファイルが出来るかな~と思いきや、出力されたcsvファイルに下記のscriptが吐かれました。

<script type=”text/javascript”> SfdcApp.Visualforce.viewstate.ViewstateSender.sendViewstate(‘URL‘, ‘VFページ名‘); </script>

ハテナ。色々試してみても一向に解消しない。ドハマリ・・・

で、何やかんややっている内に解決しました。コード自体は悪くなくて、どうも開発者コンソールのPreviewでページ出力すると上記のscriptが出てしまうみたいです

前からちょっと気にはなっていたのですが、開発者コンソールのPreviewでVFページを表示すると、URLに下記パラメータがくっつきます。

?core.apexpages.request.devconsole=1

どうもこいつが悪さするみたいです。試しに上記パラメータを取っ払った状態(Previewボタンを押さずにURLをベタ書き)でcsv出力すると上記scriptタグは出ないです。

いやはや、まずはサンプルを作ってみようと慎重になってしまったが故に、本来ハマらなくてよいところでハマってしまいました・・検索しても全然ヒットしなかったので、かなり稀なハマり方かもしれません。というか、開発者コンソールのPreviewって、あまり使われていない・・??

コメント

タイトルとURLをコピーしました