假设您想用JS创建一个蓝色元素,如下所示:
<p onload="this.style.color = 'blue'">Boy, I sure do wish I was blue</p>
上述行不起作用,因为this
以该上下文中的窗口对象为目标。您可以使用ID,但我认为这是一种更好的方式。
所以,就像标题所说的那样,是否有任何简单的方法可以在onload中使用onload来定位元素?请注意,当页面中有多个具有onload
属性的元素时,此类解决方案必须正常工作。
答案 0 :(得分:1)
你必须使用JavaScript。
您可能希望排除window
和iframe
元素,但这应该可以让您入门。
// Get the list of elements with an `onload` attribute
var list = document.querySelectorAll("[onload]");
// Loop through those elements
for(var i = 0; i < list.length; i++) {
var el = list[i];
// Get the value of `onload`
var v = el.getAttribute("onload");
console.log(v);
// Once you have `v` you need to call it... with something like:
var func = new Function(v);
func.call(v); // This should set `this` properly.
}
答案 1 :(得分:0)
不幸的是,onload属性只会加载body
或iframe
个元素,而不会加载到任意元素上。
答案 2 :(得分:0)
我建议你发送&#34;这个&#34;到一个函数,然后用元素做你想做的事。
function change(e){ e.style.color = 'blue'; }
<p onload="change(this);">Boy, I sure do wish I was blue</p>
虽然不是完美的答案或解决方案,但它对我来说非常有效。请注意,我不知道这是否适用于所有浏览器。