1
私は、サーバーコールを行うことなく、テキストエリアから折り返し改行を取得しようとしています。 This answerは私にその道の90%を与えます。問題は、送信ボタンをクリックするたびにiframeの内部でページが再読み込みされることです。ここでは、コードがあります:送信ボタンをhtml - textareaからラップされたテキストを取得する
<html><body>
<script type="text/javascript">
function getURLParameter(qs, name) {
var pattern = "[\\?&]"+name+"=([^&#]*)";
var regex = new RegExp(pattern);
var res = regex.exec(qs);
if (res == null)
return "";
else
return res[1];
}
function getHardWrappedText() {
var frm_url = document.getElementById('frame').contentDocument.URL;
var text = unescape(getURLParameter(document.getElementById('frame').contentDocument.URL, 'text')).replace(/\+/g,' ');
return text;
}
function onIFrameLoad() {
var text = getHardWrappedText();
console.log(text);
}
window.onload = function() { console.log("loading") } ;
</script>
<form name="form" method="get" target="frame">
<textarea id="text" name="text" cols=5 wrap="hard">a b c d e f</textarea>
<input type="submit">
</form>
<iframe id="frame" name="frame" onload="onIFrameLoad()" style="display:none;"></iframe>
クリックすると、出力が得られます。
loading
a b c d e
f
は、ページをリロードからのiframeを防止する方法はありますか?
私はいつもフォームを提出したい、ちょうどページ全体がリロードされていない。空のiframeを作成する場所はありますか? – user1391697
「display:none」がiframeでうまく動作しないため、何かを提出して視覚的な指示がない場合は、非常に小さいiframe(1x1)を定義できます。私はAJAXを使用することをお勧めしますが、目的が何かをバックグラウンドで提出することであれば。 – fozylet
私はコンテンツの表示について心配していません( 'display:none;'は大丈夫です)。私は 'window.onload'でロジックを再実行したくありません。それは理にかなっていますか? – user1391697