[掲示板へもどる]

一括表示

★ - HTMLタグのデータの取り込み(2... 【1.xx互換スクリプト】 - Takehana 04/16-02:12 No.75


タイトルHTMLタグのデータの取り込み(2.40版)
カテゴリ: 1.xx互換スクリプト
記事No: 75 [関連記事]
投稿日: 2006/04/16(Sun) 02:12
投稿者Takehana
1.66版では下記のような記述で新しく開いたウィンドウ内のHTMLタグデータを
(headタグなどはのぞいて)クリップボードに取り込めていたのですが、
2.40版で試してみたところ、新しくウィンドウは開いたあとで、
「オブジェクトがありません」とエラーになってしまいます。

エラーになっている行は●をつけているところです。

	// 新ウィンドゥで開く
	var pnir = new ActiveXObject("Sleipnir.API");
	var nid;
	nid = pnir.NewWindow(chkURL,true);
	while(pnir.IsBusy(nid)){
		WScript.Sleep(100);
	}

	// 新ウィンドウの情報を取り込む
	var xid = pnir.GetDocumentID( pnir.ActiveIndex);
	var xDoc = pnir.GetDocumentObject( xid );
	var xWin = pnir.GetWindowObject( xid );

	// bodyタグ内の内容をクリップボードへ
	xWin.clipboardData.setData("text", xDoc.body.innerHTML); //●ここでエラー

インストールフォルダ内のドキュメントなどを見る限りでは
GetDocumentObjectやGetWindowObjectなどの記載があったので、2.40でも
そのまま使えると思っていたのですが、どこが悪いのか分からない状態です。

これは2.40でも問題なく出来ることなのでしょうか?
それとも出来ないことなのでしょうか?
もし2.40で可能であれば、修正方法などを教えていただけると幸いです。

タイトルRe: HTMLタグのデータの取り込み(2.40版)
カテゴリ: 1.xx互換スクリプト
記事No: 76 [関連記事]
投稿日: 2006/04/17(Mon) 01:26
投稿者由々識
URLhttp://yuyulab.hp.infoseek.co.jp/
Sleipnir.API の IsBusy() が正常に動作していないようです。
色々と試してみた所、新しくウィンドウを開いた瞬間に IsBusy() が false を返し、
そしてすぐに true になってページが読み込み完了した時にまた false になりました。
これはあきらかに Sleipnir の不具合です。

さて、問題の修正方法ですが、
ウィンドウを開いた瞬間の IsBusy() が false を返して来た時の

pnir.GetDocumentObject(nid)

の値を取得してみた所、null を返して来ることがわかりましたのでこれを利用
します。

while(pnir.IsBusy(nid)){

の部分を

while(pnir.IsBusy(nid) || pnir.GetDocumentObject(nid) == null){

に書き換えると 2.40 でも問題なく動作するようになります。

タイトルRe: HTMLタグのデータの取り込み(2.40版)
カテゴリ: 1.xx互換スクリプト
記事No: 77 [関連記事]
投稿日: 2006/04/17(Mon) 23:38
投稿者Takehana
> Sleipnir.API の IsBusy() が正常に動作していないようです。
> 色々と試してみた所、新しくウィンドウを開いた瞬間に IsBusy() が false を返し、
> そしてすぐに true になってページが読み込み完了した時にまた false になりました。
> これはあきらかに Sleipnir の不具合です。
> 
> さて、問題の修正方法ですが、
> ウィンドウを開いた瞬間の IsBusy() が false を返して来た時の
> 
> pnir.GetDocumentObject(nid)
> 
> の値を取得してみた所、null を返して来ることがわかりましたのでこれを利用
> します。
> 
> while(pnir.IsBusy(nid)){
> 
> の部分を
> 
> while(pnir.IsBusy(nid) || pnir.GetDocumentObject(nid) == null){
> 
> に書き換えると 2.40 でも問題なく動作するようになります。

さっそくご指摘の通り修正させていただいたところ、
無事動作いたしました。
丁寧な解説、ありがとうございます。

ちなみに、下記のURLで公開していたスクリプトです。
http://takehana.smile.tc/cccc/index.php?itemid=838

このURLも記した上で最初に書き込みさせていただこうかと思ったのですが
タイミング悪くサイトが表示できない状態に突入してしまい、
自分のサイトなのに記事のURLが分からなくて記すことも出来ず、すみませんでした。

- Web Forum -   Modified by isso