Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
この記事に対してトラックバックを送信する(FC2ブログユーザー)
http://kovayashi.blog120.fc2.com/tb.php/87-9bf6f7af

-件のトラックバック

-件のコメント

[C21]

勇み足でした。
これ、IEの設定がデフォルトの時のみ有用で、
そうでない時は、ダメな挙動になる。。。
  • 2009-12-13
  • 本人
  • URL
  • 編集

コメントの投稿

投稿フォーム
投稿した内容は管理者にだけ閲覧出来ます

『セキュリティ保護のため、このサイトによる、・・・(省略)』・完結編

※後日記
 この方式は、ダメダメ。
 その後、気づいたが、Ajax.Requestに、asynchronous: falseを付ければ、当該事象は発生せずなので、
 それで終わりかと。


『セキュリティ保護のため、このサイトによる、コンピューターへの・・・(省略)』、及び
続・『セキュリティ保護のため、このサイトによる、コンピューターへの・・・(省略)』では、


せめて、ボタンを最初に押した時だけ、以下の様なアラートを出したい。(2度目からは出したくない)

などと、考えてたが、もう少しマシな方式を思いついたので、ここに記す。

要は、ブロックされて、htmlをリロードした際に、ブロック起因のロードだったら、ブロックされて
行けなかった所に飛ばしてやればよい。


#!/usr/local/bin/ruby
require 'cgi'
require "erb"
cgi=CGI.new('html3')

file='hoge.zip'

if cgi.has_key?('dl') then
cgi.out('status'=>'OK'){file}
elsif cgi.has_key?('move') then
year=60*60*24*365
cgi.out('status'=>'REDIRECT',
'location'=>cgi['move'],
'cookie'=>CGI::Cookie::new({'name'=> 'move',
'value'=> file,
'expires'=> Time.now + (cgi['flg']=='false' ? year : year*-1)
})
){''}
else
cgi.out('status'=>'OK',
'pragma'=>'no-cache',
'cache-control'=>'no-cache,must-revalidate'){
ERB.new(DATA.read).result(binding)
}
end
__END__
<html>
<body>
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript">
var url = '<%= ENV['SCRIPT_NAME'] %>';
var move = '';
var cnt = 0;

Event.observe(window,'load',function(ev){
document.cookie.split(';').each(function(c){
c.match(/ *(.*)=(.*)/);
if(RegExp.$1=='move'){
move = RegExp.$2;
var d = new Date();
d.setYear(d.getYear() - 1);
document.cookie = 'move=move;expires=' + d.toGMTString();
}
});
if(window.ActiveXObject && move != '')
location.href = url + '?move=' + move +'&flg=' + (move != '');
});

function onButtonClick(){
new Ajax.Request(url,{
method: "post",
postBody: "dl=true",
onSuccess: function(http){
location.href = url + '?move=' + http.responseText +'&flg=' + (move != '');
}
});
}
</script>
<form>
<input type="button" onClick="onButtonClick()" value="DownLoad"
</form>
</body>
</html>


この方が、使う人にとっては、自然な動きだね。
この記事に対してトラックバックを送信する(FC2ブログユーザー)
http://kovayashi.blog120.fc2.com/tb.php/87-9bf6f7af

0件のトラックバック

1件のコメント

[C21]

勇み足でした。
これ、IEの設定がデフォルトの時のみ有用で、
そうでない時は、ダメな挙動になる。。。
  • 2009-12-13
  • 本人
  • URL
  • 編集

コメントの投稿

投稿フォーム
投稿した内容は管理者にだけ閲覧出来ます

Appendix

プロフィール

kovayashi

Author:kovayashi
・嫌いなもの
 →好きなもの

・インストール
 →バンドル
・バックアップ
 →アップロード
・努力
 →チート

最近のトラックバック

ブログ内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。