以前は問題無かったのですが、ここ最近だとは思います。
ソースコードをクリップボードをコピーする為に、swf を使っていますが、
swf 側でクリックしないと動作しないので、JavaScript を呼び出しています。
しかし、一度呼び出してクリップボードへのコピーは完了するのですが、再び
呼び出して「コピーされました」と alert させるようにしていたところ、そこで
固まります。仕方ないので、Firefox の場合のみ。setTimeout で alert を実行
するようにしました。
完全に固まるのでたぶん setTimeout で改善されると思ったらやはりそのようでした。
<script type="text/javascript">
var clip_str = "\u30af\u30ea\u30c3\u30d7\u30dc\u30fc\u30c9"+
"\u306b\u30b3\u30d4\u30fc\u3055\u308c\u307e"+
"\u3057\u305f\u3000\u3000\u3000";
function orgCodeInit(id) {
return "";
}
function orgCodeGetForClipcopy(id,shiftFlg,ctrlFlg) {
var str = id.replace(/_object/g,'')
.replace(/_name/g,'');
var codeWorkString = "";
objPre = document.getElementById(str);
if (window.navigator.appName.toLowerCase().indexOf("microsoft") > -1) {
codeWorkString = objPre.innerText;
}
else {
range = document.createRange();
range.selectNode( objPre );
codeWorkString = range.toString();
}
return( codeWorkString );
}
function orgCodeClipcopyEnd() {
var userAgent = window.navigator.userAgent.toLowerCase();
if (userAgent.indexOf("firefox") > -1) {
setTimeout("alert(clip_str)", 10);
}
else {
alert(clip_str);
}
}
なんか、3.6.12 でなおったようなんですけど、ひょっとしたら Windows7 特有
かもしれないしなぁ・・・。どうせ処理的には setTimeout で問題無いので全部
変更しよっか考え中。