• ベストアンサー

ActiveXを使用したブックマークレットの動作

javascript:txt=document.selection.createRange();b=txt.text.replace(/\n/g,' ');fso=new ActiveXObject("Scripting.FileSystemObject");newFile=fso.OpenTextFile("c:\\test.txt",8,true);newFile.WriteLine(b);newFile.Close(); という、選択範囲をc:\test.txtファイルに追加書き込みするブックマークレットを組んでみたのですが、上手く行ったり、ページエラーが出て書きこめてなかったり動作が不安定です。安定して動作させるにはどこを直せばよいでしょうか? OSはwindows 98SE, IE6を使用しています。ブラウザのセキュリティはActiveX関連の物は全て有効かダイアログ表示に設定しています。

質問者が選んだベストアンサー

  • ベストアンサー
noname#35109
noname#35109
回答No.2

OpenTextFile("c:\\test.txt",8,true); の \ を1つ取って OpenTextFile("c:\test.txt",8,true); にしても不安定でしょうか。 Bookmarklet ではありませんでしたが, 以前,JavaScript で IE の窓の位置や大きさを保存するときに, 普通に \\ としていて,問題なかったのですが, 他の PC(Windows98)で \\ ではうまく行かず,\ にしたらうまく行ったことがありました。 現在,Windws98 で実験することができないので,何とも言えませんが, 今やってみると,WindowsXP + IE6 では, \\ でなく,\ でもうまく動作しました。

methinks
質問者

お礼

しばらく見ていませんで、お礼遅れてすみません。問題はスクリプトではなくウィルス対策ソフトにあったみたいです。迂回策を考えて自己解決しました。ご返答どうもありがとうございました。

その他の回答 (1)

  • Blaise
  • ベストアンサー率33% (13/39)
回答No.1

うーん。ちょっと見これでよさげだけどなあ。OSとブラウザ間の 問題はないの?(ふつー、win98とIE6は最悪の純正ペアだし)

methinks
質問者

補足

一応windows updateでパッチは最新の物をあててるので、問題自体はないと思います。 エラーの発生は、どうも読み込む文章の長さに関係しているようです。文章が短い場合はステータスバーに「ページでエラーが発生」と表示されていても、書き込み自体には成功していることが多いです。(一度「ページでエラーが発生」が出ると、ブラウザを新しく立ち上げない限り何度やってもダメになる。) あと読み込む文章が日本語の場合は、長文でもエラーも出ないし、ファイルへの書きこみも成功するようです。英語の場合は5ワード前後ならエラーが出ても書きこみにはまず成功しますが、ちょっと長めになると書き込みにも失敗していることが多いです。(たまにファイルがロックされて読み取り専用でしか開けないこともあり)

関連するQ&A

専門家に質問してみよう