アプリ版:「スタンプのみでお礼する」機能のリリースについて

こんばんは。
下記スクリプトですが、「★★★」の個所で「オブジェクトでサポートされていないプロパティまたはメソッドです。」となってしまいます。なぜでしょうか?また、回避するにはどうしたらいいでしょうか?
やりたいことは、"rd"を含むURLだけリストしないのです。

--
var IE = WScript.CreateObject("InternetExplorer.Application");
var URL = "http://www.yahoo.co.jp";
IE.Navigate(URL);
WaitLoad();

var fs = WScript.CreateObject("Scripting.FileSystemObject");
var stream = fs.CreateTextFile("yahoo.txt");
var objTagsAs = IE.Document.all.tags("A");
for (i = 0; i < objTagsAs.length; i++)
if (objTagsAs[i].match(/rd/i) != -1) //★★★
stream.Write(objTagsAs[i] + "," + objTagsAs[i].innerText + "\r\n");
stream.Close();

function WaitLoad() {
var stat, dstart;
stat = 0;
while(true)
if(stat == 0) {
if(!IE.Busy)
if(IE.Document.readyState == "complete") {
dstart = (new Date()).getTime();
stat = 1;
}
}
else {
if(!IE.Busy &&
IE.Document.readyState == "complete") {
if((new Date()).getTime() >= dstart + 3000)
break;
}
else
stat = 0;
}
}

A 回答 (1件)

matchということは、対象が文字列でないと使えないかと。


objTagsAs[i].だけでは、それはi番目のAタグオブジェクト自身を指しているだけで、文字列では無いから、という理由のエラーかと思われますが?違うかな?

それであれば、Aタグの前後を特定のタグで括るなりして、その内容をinnerHTMLで取得して、その文字列を対象にすればmatchが使えるかも。(アイディアだけですが。。。)
    • good
    • 0
この回答へのお礼

ありがとうございます。

型変換
if (String(objTagsAs[i]).match(/rd/i) != -1) //★★★
または
if ((objTagsAs[i]+"").match(/rd/i) != -1) //★★★
とすることで解決できました。

次の行の
stream.Write(objTagsAs[i] + "," + objTagsAs[i].innerText + "\r\n");
で出力できていたので、String型だと思っていたのですが、
「","」の部分で型変換されていたようですね。

ありがとうございました。

お礼日時:2002/12/15 00:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!