一番上の入力フィールドにダウンロードするファイルの URL を入力します。 2番目と3番目は自分のサイトにファイルがある場合に変更します。 swf と ダウンロードファイルが別ドメインの場合は、ダウンロードファイル側に crossdomain.xml を置いて、ダウンロードを許可する必要があります ※ iframe を使用すると、.js ファイルは必要ありません。
タイプ 実装
一番上の入力フィールドにダウンロードするファイルの URL を入力します。 2番目と3番目は自分のサイトにファイルがある場合に変更します。 swf と ダウンロードファイルが別ドメインの場合は、ダウンロードファイル側に crossdomain.xml を置いて、ダウンロードを許可する必要があります ※ iframe を使用すると、.js ファイルは必要ありません。
多少の技術的な知識は必要ですが、swf でファイルをダウンロード させる場合は、ボタンクリック後にすぐファイル保存ダイアログを 表示させる事ができます。 また、サーバの mime 設定に左右されずにテキストファイル等も ダウンロードが可能です。 設置に Google 経由の swfobject を使用していますので、Google 側で問題が発生した場合は、swf が表示されない可能性がありますが、 通常のリンクも同時に設置しているので、問題はありません
1) ダウンロード(含ソースコード)して fileDownload.js と fileDownload.swf を自分のサイトに設置 2) 以下のように記述
<script
charset="shift_jis"
type="text/javascript"
src="http://homepage2.nifty.com/lightbox/fileDownload.js"></script>
<script
type="text/javascript"
src="http://www.google.com/jsapi"
charset="utf-8"></script>
<script type="text/javascript">
google.load("swfobject", "2.1");
createFileDownloadArea("flashcontent");
</script>
<script type="text/javascript">
createFileDownload(
"http://winofsql.jp/download/fileDownload_090513.lzh",
"http://homepage2.nifty.com/lightbox/fileDownload.swf",
"",125,90,"9.0.0");
</script>
http://homepage2.nifty.com/lightbox/ のファイルをそのまま
使っていただいても結構ですが、かなり重いと思います。
createFileDownload の引数は以下のような仕様です。
1) ダウンロードするファイルのURL
2) swf のパス( ページから参照できれば良いので相対パスでも可 )
3) "" は白タイプ、 "red" とすると赤タイプ
4) 幅( 変更してもあまり意味ありません )
5) 高さ( 変更してもあまり意味ありません )
6) 最低必要なバージョン指定( swfobject への引数です )
ダウンロードする URL が、ページを表示しているドメインと異なる場合は、
その URL のトップに crossdomain.xml を置いて、ページを表示している
ドメインからのファイルアクセスを許可する必要があります
<IFRAME src="http://winofsql.jp/fileDownload.swf?target=http%3A%2F%2Fwinofsql.jp%2Fdownload%2FfileDownload_090513.lzh&type=red" frameborder="no" scrolling="no" width="125" height="90" ></IFRAME>
ダウンロード オリジナルの英文のサンプル等
<div id="targetArea"></div>
<script type="text/javascript">
var flashvars = {};
flashvars.a = 34.688324;
flashvars.b = 135.498463;
flashvars.c = 19;
var params = {allowScriptAccess:"always",bgcolor:"#ffffff"};
var attributes = {
id: "myDynamicContent",
name: "myDynamicContent"
};
swfobject.embedSWF(
"http://mydoamin/my.swf?reload="+(new Date()).getTime(),
"targetArea",
"600",
"500",
"9.0.0",
"",
flashvars,
params,
attributes
);
</script>
?reload="+(new Date()).getTime() をURLに付加しているのは キャッシュで変更結果が反映されないのを避ける為で、開発中に使います。 flashvars,params,attributes はいずれも配列で、指定方法がそれぞれ 違いますが、結果は同じです。 flashvars は、アプリケーションに対する引数で、本来は params のうちの一つ。 params は、flash に対する引数。 attributes は、HTML 上のオブジェクトとしての引数(属性)です。 6番目の引数は省略していますが、Express Install に使用 する swf を指定するようです( 未検証 ) Google 経由で使用する場合は、swfobject.js を使わずに、以下 のように記述します
<script
src="http://www.google.com/jsapi"
type="text/javascript"
charset="utf-8"
></script>
<script type="text/javascript">
google.load("swfobject", "2.1");
</script>
■ 関連する記事 ブログパーツとしての Flex で作った Google MAP
var str:String = ExternalInterface.call("window.navigator.userAgent.toLowerCase");
if (str.indexOf("msie") > -1) {
Alert.show("IE");
}
else if (str.indexOf("firefox") > -1) {
Alert.show("Firefox");
}
else if (str.indexOf("opera") > -1) {
Alert.show("Opera");
}
else if (str.indexOf("netscape") > -1) {
Alert.show("Netscape");
}
else if (str.indexOf("chrome") > -1) {
Alert.show("Google Chrome");
}
else {
Alert.show("Unknown");
}
以前作った汎用型の FlashButton( クリップボードにデータを貼り付ける ) の使い方をまとめました。
まず、ダウンロードはこちらから で、
解凍した中から、flashButton.js と flashButton.swf を取り出して、
自分のサイトにアップロードします。
とりあえず、ここでは 「winofsql.jp/flex3/flashButton/」にある事として話を進めます
( 実際にありますけど )
まず、以下のスクリプトタグをページの最初に表示するソースコードより前に一度だけ記述します
( ページの先頭の任意の場所で良いです )
<SCRIPT type="text/javascript" src="http://winofsql.jp/flex3/flashButton/flashButton.js"></SCRIPT>次に、ソースコードを PRE タグで記述する必要が
<PRE id="id123456"> ソースコード </PRE>そして、FlashButton を追加する場合は好きな場所に以下の記述を行い
<SCRIPT type="text/javascript">
createFlashButton("id123456","http://winofsql.jp/flex3/flashButton");
</SCRIPT>
function orgCodeInit(id) {
var str = id.replace(/_object/g,'')
.replace(/_name/g,'');
try {
str = fbtnImage(str);
}
catch( e ) {
str = "";
}
return str;
}
function orgCodeGetForClipcopy(id,shiftFlg,ctrlFlg) {
var str = id.replace(/_object/g,'')
.replace(/_name/g,'');
var codeWorkString = "";
if (window.navigator.userAgent.toLowerCase().indexOf("msie") > -1) {
codeWorkString = document.getElementById(str).innerText;
}
else {
codeWorkString = document.getElementById(str).innerHTML;
codeWorkString = codeWorkString.replace(/</g,'<')
.replace(/>/g,'>')
.replace(/&/g,'&');
}
return( codeWorkString );
}
function orgCodeClipcopyEnd() {
var str = "\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9"+
"\u306b\u30b3\u30d4\u30fc\u3055\u308c\u307e"+
"\u3057\u305f\u3000\u3000\u3000";
alert(str);
}
function createFlashButton(id,path) {
var paramCount = arguments.length;
var width = 0;
var height = 0;
var bcolor = 0;
var wmode = false;
if ( paramCount > 2 ) {
width = arguments[2]
}
if ( paramCount > 3 ) {
height = arguments[3]
}
if ( paramCount > 4 ) {
wmode = arguments[4]
}
if ( paramCount > 5 ) {
bcolor = arguments[5]
}
try {
fbtnImage("");
}
catch( e ) {
width = 0;
height = 0;
}
var str="";
str+="<object \n";
str+=" id=\""+id+"_object\" \n";
str+=" classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" \n";
if ( width == 0 ) {
str+=" width=\"85\" \n";
}
else {
str+=" width=\""+width+"\" \n";
}
if ( height == 0 ) {
str+=" height=\"17\" \n";
}
else {
str+=" height=\""+height+"\" \n";
}
str+="> \n";
str+=" <param name=\"movie\" value=\""+path+"/flashButton.swf\" /> \n";
str+=" <param name=\"allowScriptAccess\" value=\"always\" /> \n";
if ( bcolor == 0 ) {
str+=" <param name=\"bgcolor\" value=\"#FFFFFF\" /> \n";
}
else {
str+=" <param name=\"bgcolor\" value=\""+bcolor+"\" /> \n";
}
if ( wmode ) {
str+=" <param name=\"wmode\" value=\"transparent\" /> \n";
}
str+=" <embed \n";
str+=" name=\""+id+"_name\" \n";
str+=" src=\""+path+"/flashButton.swf\" \n";
str+=" allowscriptaccess=\"always\" \n";
if ( width == 0 ) {
str+=" width=\"85\" \n";
}
else {
str+=" width=\""+width+"\" \n";
}
if ( height == 0 ) {
str+=" height=\"17\" \n";
}
else {
str+=" height=\""+height+"\" \n";
}
if ( bcolor == 0 ) {
str+=" bgcolor=\"#FFFFFF\" \n";
}
else {
str+=" bgcolor=\""+bcolor+"\" \n";
}
if ( wmode ) {
str+=" wmode=\"transparent\" \n";
}
str+=" > \n";
str+=" </embed> \n";
str+="</object> \n";
document.write( str );
}
|
|
|
|