[英]html - Get wrapped text from textarea
我正在尝试从textarea换行换行符,而无需进行任何服务器调用。 这个答案使我有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重新加载页面?
您必须向表单的onsubmit事件返回false。
<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(看起来不太可能)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.