Javascript 输入元素是否有onload事件?
当呈现输入元素或任何其他html元素时,是否可能触发Javascript脚本。这个脚本应该从html标记中触发,这样我们就可以将“This”传递给js函数。不,没有这样的事件 但是,直接放置在HTML元素后面的Javascript 输入元素是否有onload事件?,javascript,Javascript,当呈现输入元素或任何其他html元素时,是否可能触发Javascript脚本。这个脚本应该从html标记中触发,这样我们就可以将“This”传递给js函数。不,没有这样的事件 但是,直接放置在HTML元素后面的标记也会产生类似的效果:它将在元素呈现后直接执行: <input type="text" id="input123" value="Hello World!"> <script> alert("Input123 is now ready:"+document.ge
标记也会产生类似的效果:它将在元素呈现后直接执行:
<input type="text" id="input123" value="Hello World!">
<script>
alert("Input123 is now ready:"+document.getElementById("input123").value);
</script>
警报(“Input123现在准备就绪:”+document.getElementById(“Input123”).value);
但是,在大多数情况下,最好使用文档范围的
load
(或DOMReady
,或jQuery的.ready()
)来启动任何脚本操作。DOM将完全就绪。否,没有此类事件
但是,直接放置在HTML元素后面的
标记也会产生类似的效果:它将在元素呈现后直接执行:
<input type="text" id="input123" value="Hello World!">
<script>
alert("Input123 is now ready:"+document.getElementById("input123").value);
</script>
警报(“Input123现在准备就绪:”+document.getElementById(“Input123”).value);
但是,在大多数情况下,最好使用文档范围的
load
(或DOMReady
,或jQuery的.ready()
)来启动任何脚本操作。DOM将完全就绪。否这是不可能的。但是,您可以在页面加载完成后立即使用jQuery+$(document).ready(函数)修改您想要的任何输入字段。否这是不可能的。但是,您可以在页面加载完成后立即使用jQuery+$(document).ready(函数)修改所需的任何输入字段。否。但是,放置在输入元素标记之后的任何脚本都将在输入元素可用的情况下运行,因为它是在脚本之前解析的。所以,如果这一切都在体内:
<input id="a">
<script>document.getElementById('a');</script>
document.getElementById('a');
无论如何,这一切都可以工作。否。但是,任何放置在输入元素标记之后的脚本都将在输入元素可用的情况下运行,因为它是在脚本之前解析的。所以,如果这一切都在体内:
<input id="a">
<script>document.getElementById('a');</script>
document.getElementById('a');
不管怎样,这一切都会起作用。不,没有。只需从文档“ready”处理程序运行代码,或者使用类似jQuery的方法在“ready”(即DOM完成但图像可能尚未加载时)运行代码即可。不,没有。只需从文档“ready”处理程序运行代码,或者使用类似jQuery的方法,让您可以在“ready”状态下运行代码(即DOM已完成,但图像可能尚未加载)。模拟此类事件的方法是创建自定义数据-*attribute(HTML-5有效)并将其用作选择器。然后在主javascript代码中,您可以为任何具有此特定数据XXX属性的内容添加选择器,并对其中的javascript代码求值 HTML代码示例:
<div data-onload="sampleFunction('param1', 2)"></div>
这很有效。实际上,我在生产中使用它。模拟此类事件的一种方法是创建自定义data-*ATAttribute(HTML-5有效)并将其用作选择器。然后在主javascript代码中,您可以为任何具有此特定数据XXX属性的内容添加选择器,并对其中的javascript代码求值 HTML代码示例:
<div data-onload="sampleFunction('param1', 2)"></div>
这很有效。实际上,我在生产中使用它。我有一个输入元素,可以动态添加到文档中,需要初始化 这并不完美,但这里有一种在第一次使用输入时初始化小部件的方法:
<input onfocus="initwidget(this)">
我有一个输入元素,它被动态添加到文档中,需要初始化 这并不完美,但这里有一种在第一次使用输入时初始化小部件的方法:
<input onfocus="initwidget(this)">
有一个窍门。对于具有
type=“image”src=“…”
属性的输入,有onload
和onerror
事件。您可以使用onerror
,方法是将empty或always error传递给src
,并在触发onerror
事件时将类型更改为正确的类型:
函数func(输入){
console.log(“输入加载”);
input.type=“text”;
input.value=“工作!”;
input.removeAttribute(“src”);
// ...
}
有一个窍门。对于具有type=“image”src=“…”
属性的输入,有onload
和onerror
事件。您可以使用onerror
,方法是将empty或always error传递给src
,并在触发onerror
事件时将类型更改为正确的类型:
函数func(输入){
console.log(“输入加载”);
input.type=“text”;
input.value=“工作!”;
input.removeAttribute(“src”);
// ...
}
问题是在呈现元素时,我不知道元素的id。Gareth,请注意我是如何在示例脚本中选择id为a
的元素的。imdad,您可以使用其他方式选择元素,例如标记选择,甚至类选择。问题是当呈现元素时,我不知道id。Gareth,请注意我在示例脚本中如何选择id为a
的元素。imdad,您可以使用其他方法选择元素,例如标记选择,甚至类选择。通常,使用eval被认为是不好的做法,应该尽可能避免使用eval。Eval可能非常不安全,因为它将运行dataonload属性中的任何代码。您可以使用一个通用回调函数,只需通过data onload
传入参数,通常认为使用eval是不好的做法,应该尽可能避免使用eval。Eval可能非常不安全,因为它将运行dataonload属性中的任何代码。您可以使用一个通用回调,只需通过dataonload
像这样传入参数