dポイントプレゼントキャンペーン実施中!

こんばんは。

fileUploadオブジェクトへの値の代入がどうにもこうにもできません。
いったいどうしたらいいのでしょうか?どうか助けてください。
よろしくお願いいたします。m(__)m
--
<HTML><BODY>

<FORM NAME="myFormF">
<INPUT TYPE="file" NAME="myFile">
<INPUT TYPE="button" value="set FILEFILE -> file"

onClick="document.myFormF.myFile.value='FILEFILE'">
<INPUT TYPE="submit" onClick="alert(document.myFormF.myFile.value)">
</FORM>

<FORM NAME="myFormT">
<INPUT TYPE="text" NAME="myText">
<INPUT TYPE="button" value="set TEXTTEXT -> text"

onClick="document.myFormT.myText.value='TEXTTEXT'">
<INPUT TYPE="submit" onClick="alert(document.myFormT.myText.value)">
</FORM>

</BODY></HTML>
--
key: fileUpload object,ファイルアップロードオブジェクト,WSH,javascript

A 回答 (2件)

値を代入できないのが仕様だからです。



もし、これが可能になってしまうと、非表示の入力フォームを利用して、PC内の情報を勝手にフォーム内に埋め込んだり、何かの送信時に一緒に持ち出すことも出来るようになってしまいます。

ですので、これは出来ないのです。
    • good
    • 0

#1の方の仰るとおり、


セキュリティー向上のために出来ない仕組みになってます。

<input type=text>を使いましょう。

なぜ分からないけど今使っているIE6で出来てしまうんですがね。
    • good
    • 0
この回答へのお礼

まとめてお礼させていただきます。
おふたりともご回答ありがとうございます。

残念ながら、本来は外部サイトを扱いたいのでtype=textはできないのです。(;_;
試しに、
IE.Document.myFormF.myFile.type=text;
とやってみましたが、さすがにできませんでした。(^^;
※ちなみに、できる方法とかあるのでしょうか?

一応、末尾のような関数を作って対応いたしました。無理やりsendkey()を使って対応いたしました。

※ちなみに私もIE6ですが、なぜかできないんですね。パッチでも提供されていて、たまたま私が適用でもしたのでしょうかね??

どうもありがとうございました。
---------------------------------------------------------------
var WShell = WScript.CreateObject("WScript.Shell");
var IE = WScript.CreateObject("InternetExplorer.Application");
var URL = "file:///C:/test.htm";

IE.Visible = true;
IE.Navigate(URL);
while(IE.busy);
while(IE.Document.readyState != "complete");

setElementValue(IE.Document.forms[0].myFile, "ABCDEF");

function setElementValue(element, value) {
element.focus();
WShell.Sendkeys(value);
}

お礼日時:2002/12/15 23:26

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