php を使用して、ほとんどのフォーラムのように投稿時に画像を挿入できる機能を作成したいと考えています。オンラインで調べたところ、
フォームに input type='file' と書かれていることが分かりました。フォームが送信されると、ターゲットを非表示の iframe に指定すると、ファイル
をアップロードすることができます。爽やかな。ファイルは正常にアップロードできますが、バックグラウンドで生成されたファイル保存パスを現在のページに同期して更新できないという問題が発生します。そのため、
はcsdnのように画像をアップロードした後に編集ボックスに対応するパスを書き込むことができません。
この問題を解決する良い方法がわかりません。今は書けないことが分かりました。助けを求める。
input type=text または他のコントロールにのみ書き込むことができますが、input type=file には書き込むことができません
iframe が必要です 名前付きまたは ID を使用すると、受信プログラムは画像パスをエコーします
取得するときは、
s = document.iframe name.document.body.innerHTML を使用します
ID は
に似ています
編集ボックスに対応するパスを書き込むことができますか? input type=text または他のコントロールにのみ書き込むことができますが、input type=file には書き込むことはできません
iframe には名前を付けるか ID が必要で、受信プログラムのエコー画像パス
は
s = document を取得するときに使用されます。 iframe name.document.body.innerHTML
id は
input type=textやその他のコントロールにのみ書き込めますが、input type=には書き込めません。ファイル内の
iframe には名前を付けるか ID が必要で、受信プログラムのエコー画像パス
は
s = document.iframe name.document.body.innerHTML を取得するときに使用されます
id は
に似ています
プログラムは次のようになります
html里面<script> function upload(){ $("#formUploadpic").submit() ; } function getPath(){ document.getElementById("ifram").innerHTML ; }</script><form id="formUploadpic" name="formUploadpic" enctype="multipart/form-data" method="post" action="" target="ifram"> <input type="file"><input type="button" value="上传" OnClick="upload.call(this)"></form><iframe style="width:0; height:0" name="ifram"><{$path}></iframe>后台程序function newTopic(){ if (//有文件){ //上传文件返回文件路径 $this->path = 文件保存路径 echo "<script>window.parent.getPath() ;</script>" //就是在这里显示路径为空的,好像没有更新上去一样。 }}
}
そして、カーソル位置を取得する問題は IE では解決できません。 Webkitブラウザ下でのみ正常に動作します。 csdnをテストしましたが、同じことが起こりました。
カーソル位置を取得するための情報はどこから来ますか?
6階のxjl756425616さんからの返信を引用: また、カーソル位置の取得の問題はIEでは解決できません。 Webkitブラウザ下でのみ正常に動作します。 csdnをテストしましたが、同じことが起こりました。カーソル位置を取得する情報はどこから来ますか?
モデレーターは編集者ではなかったみたいです~
非表示のドメインに送信した後、画像はアップロードされて処理されます。プロセス全体は更新されません、はい//img.my.csdn.net/uploads/201303/16 /1363434181_6561.jpg][/img]
function getPath(){
document.getElementById("ifram").innerHTML
}
どこから来たのか id='ifram'
さらに、iframe で呼び出される関数は依然として ifram で始まります...
而且关于获取光标位置的问题,在IE下是无解的。只能在webkit浏览器下正常。我测试了一下csdn也是这样的。
真可谓:无知者无畏
只要你不是闭门造车,认真提取别人的意见。怎么会有这样的结论呢?
http://www.baidu.com/baidu?word=%E5%85%89%E6%A0%87%E5%A4%84%E6%8F%92%E5%85%A5&ie=utf-8
这是我以前希望的代码(IE专用)
<SCRIPT> function storeCaret (textEl) { if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate(); } function insertAtCaret (textEl, text) { if (textEl.createTextRange && textEl.caretPos) { var caretPos = textEl.caretPos; caretPos.text =caretPos.text.charAt(caretPos.text.length - 1) == ' ' ?text + ' ' : text; } else textEl.value = text; } </SCRIPT> <FORM NAME="aForm"> <TEXTAREA NAME="aTextArea" ROWS="5" COLS="80" WRAP="soft" ONSELECT="storeCaret(this);" ONCLICK="storeCaret(this);" ONKEYUP="storeCaret(this);"> 这是例子,你可以在这里添加文字、插入文字。 </TEXTAREA> <BR> <INPUT TYPE="text" NAME="aText" SIZE="80" VALUE="我要在光标处插入这些文字"><BR> <INPUT TYPE="button" VALUE="我要在光标处插入上面文本框里输入的文字!" ONCLICK="insertAtCaret(this.form.aTextArea, this.form.aText.value);"> </FORM>
本帖最后由 xuzuning 于 2013-03-16 21:13:41 编辑
只要你不是闭门造车,认真提取别人的意见。怎么会有这样的结论呢?
http://www.baidu.com/baidu?word=%E5%85%89%E6%A0%87%E5%A4%84%E6%8F%92%E5%85%A5&ie=utf-8
这是我以……
至于为什么会消失,可能浏览器机制问题吧,弹出对话框的时候,这时不是鼠标不能点击任何地方吗?就和弹出alert类似~
我也不能特别肯定是不是这个原因,如果有人能做出来就最好了~
引用 13 楼 xuzuning 的回复:
本帖最后由 xuzuning 于 2013-03-16 21:13:41 编辑
只要你不是闭门造车,认真提取别人的意见。怎么会有这样的结论呢?
http://www.baidu.com/baidu?word=%E5%85%89%E6%A0%87%E5%A4%84%E6%8F%92%E5%85%A5&ie=ut……
快点出个 可用的方案