HTML - 获取包裹从textarea的文本(html - Get wrapped text f

2019-09-17 04:55发布

我想从一个文本字换行符,而无需进行任何服务器调用。 这个答案让我90%的方式出现。 问题是,在页面的iframe每个提交按钮时被点击的内部重新加载。 下面的代码:

 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <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">abcde f</textarea> <input type="submit"> </form> <iframe id="frame" name="frame" onload="onIFrameLoad()" style="display:none;"></iframe> </body> </html> 

点击提交按钮给人的输出:

loading
a b c d e 
f

有没有一种方法,以防止IFRAME的重新加载页面?

Answer 1:

你必须假返回到窗体的onsubmit事件。

<form name="form" method="get" target="frame" onsubmit="onIFrameLoad">

如果它是基于一些条件,你不希望加载

function onIFrameLoad() {
    var text = getHardWrappedText();
    console.log(text);
    if(text.indexOf('\n')<0) return false;
}

我只是把随机件事text.indexOf('\n')<0你可以有任何有意义或始终返回false(这看起来不太可能)



文章来源: html - Get wrapped text from textarea