现有脚本的javascript onload触发器
我不太擅长JS。我正在一些文本区域上使用此脚本,已由类成功识别- 对于以下文本区域,我的html如下所示:现有脚本的javascript onload触发器,javascript,Javascript,我不太擅长JS。我正在一些文本区域上使用此脚本,已由类成功识别- 对于以下文本区域,我的html如下所示: <textarea class="mst" id="name01" name="name01" placeholder="500 characters maximum" maxlength="500">Some text in here, up to 500 characters</textarea> 在页面底部,我有以下内容: <script src=".
<textarea class="mst" id="name01" name="name01" placeholder="500 characters maximum" maxlength="500">Some text in here, up to 500 characters</textarea>
在页面底部,我有以下内容:
<script src="./js/textarea_autosize.js"></script>
</body>
<script type="text/javascript">
autosize(document.querySelectorAll('textarea.mst'));
</script>
</html>
自动调整大小(document.querySelectorAll('textarea.mst');
当在class=“mst”
定义的文本区域中键入字符,或者删除预加载文本中的字符时,该功能将非常有效。但是,必须在文本区域中添加或删除某些内容,才能识别调整大小功能并使其生效。是否有一种简单的方法可以让10个文本区域中的每一个在加载时触发,以匹配它们在加载时可能具有的内容
请原谅我对JS的理解很差,这可能是一个很简单的问题。你试过了吗
这将等待整个页面加载后再执行autosize函数。根据您给出的信息,我不确定问题出在哪里,但根据我的经验,当某些东西没有像我预期的那样发出时,请使用window.onload=function(){/*function来执行*/}代码>帮助
另一个选项可能是在每个textarea上触发一个更改事件。这是描述的
我将使用for循环:
window.onload = function() {
var toBeResized = document.querySelectorAll('textarea.mst');
for (var i = 0, l = toBeResized.length; i < l; i++) {
toBeResized[i].dispatchEvent(new Event(Event.CHANGE, true));
}
};
window.onload=function(){
var toBeResized=document.querySelectorAll('textarea.mst');
对于(变量i=0,l=toBeResized.length;i
第二个要尝试的解决方案的来源是和
我希望这两种方法都有用。你试过了吗
这将等待整个页面加载后再执行autosize函数。根据您给出的信息,我不确定问题出在哪里,但根据我的经验,当某些东西没有像我预期的那样发出时,请使用window.onload=function(){/*function来执行*/}代码>帮助
另一个选项可能是在每个textarea上触发一个更改事件。这是描述的
我将使用for循环:
window.onload = function() {
var toBeResized = document.querySelectorAll('textarea.mst');
for (var i = 0, l = toBeResized.length; i < l; i++) {
toBeResized[i].dispatchEvent(new Event(Event.CHANGE, true));
}
};
window.onload=function(){
var toBeResized=document.querySelectorAll('textarea.mst');
对于(变量i=0,l=toBeResized.length;i
第二个要尝试的解决方案的来源是和
我希望这两种方法都能有所帮助。我发现这个问题的答案也适用于我的问题。它使用了不同的方法,但实现了正确的最终结果
我发现这个问题的答案也适用于我的问题。它使用了不同的方法,但实现了正确的最终结果
你好,jay,我刚刚尝试了你的建议,将你建议的代码放在页面底部的autosize(document.queryselectoral('textarea.mst'))下代码>并重新加载。它不起作用,所以我在页眉中尝试了一下,结果还是一样。杰伊,在尝试这些想法时,我真的没有得到任何改变,但我可以看到你在努力让它发挥作用。问题(我相信)是,我所拥有的功能实际上不是设计来与文本中的文本竞争的,所以没有(明显)的功能来考虑这一点。试图让函数在加载时启动是不起作用的,我认为这是因为它确实需要一些东西,比如文本区域焦点内的按键。。。也许。这有点像是在抓救命稻草…@df0,我想知道你是否迭代了你的textarea元素,删除了所有的文本,将其存储到一个变量中,然后将文本直接添加回textarea,如果这样有帮助的话。那里没有按键,因此可能无法工作。我想我也在抓救命稻草虽然这是一个好主意,但是如何在JS中尝试这一点是我所不知道的。我认为我很聪明,只需将class元素添加到选定的textarea中,而不是让它处理所有的textarea!;-)上面的window.onload=function(){
在该循环中遍历它们,var text=toBeResized[i].value;
toBeResized[i].value=“”;
toBeResized[i].value=text;
这将改变textarea的值,但将其填充回原始文本,并有望触发自动调整大小。你好,jay,我刚刚尝试了你的建议,将建议的代码放在页面底部的自动调整大小下(document.querySelectorAll('textarea.mst'))
并重新加载。它不起作用,因此我在标题中尝试了它,结果仍然是一样的。Jay,我在尝试这些想法时没有得到任何改变,但我可以看到你试图使它起作用的地方。问题(我相信)我拥有的功能实际上并不是设计用来处理文本区域中已经存在的文本的,因此没有(明显的)考虑到这一点。想让函数在加载中启动是不起作用的,我认为它确实需要在TejTaReA焦点中键入一些键……也许……这里有点抓握……@ df0,我想知道你是否通过你的文本元素迭代并删除了所有的文本,把它存储到一个变量,然后添加。如果有帮助的话,我会将文本直接返回到文本区域。那里没有按键,因此可能不起作用。我想我也在抓救命稻草。:)虽然这是个好主意,但是如何在JS中尝试这一点远远超出了我所知道的任何方法。我认为我很聪明,只是通过添加el类让它与选定的文本区域一起工作在这个循环中,var text=toBeResized[i].value;
toBeResized[i].value;
toBeResized[i].value=“”;
toBeResized[i].value=text;
将更改textarea值,但用原始文本重新填充
window.onload = function() {
var toBeResized = document.querySelectorAll('textarea.mst');
for (var i = 0, l = toBeResized.length; i < l; i++) {
toBeResized[i].dispatchEvent(new Event(Event.CHANGE, true));
}
};