Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有简单的方法可以将onload放在onload中的元素作为目标?_Javascript_Html_Onload_Targeting - Fatal编程技术网

Javascript 有没有简单的方法可以将onload放在onload中的元素作为目标?

Javascript 有没有简单的方法可以将onload放在onload中的元素作为目标?,javascript,html,onload,targeting,Javascript,Html,Onload,Targeting,假设您想用JS将一个元素变成蓝色,如下所示: <p onload="this.style.color = 'blue'">Boy, I sure do wish I was blue</p> 男孩,我真希望我是蓝色的 上面的行不起作用,因为此以该上下文中的窗口对象为目标。你可以用身份证,但我想有更好的办法 那么,正如标题所说,有没有简单的方法可以将onload元素作为onload元素的目标?请注意,当页面中有多个具有onload属性的元素时,这种解决方案必须起作用。不

假设您想用JS将一个元素变成蓝色,如下所示:

<p onload="this.style.color = 'blue'">Boy, I sure do wish I was blue</p>
男孩,我真希望我是蓝色的

上面的行不起作用,因为
以该上下文中的窗口对象为目标。你可以用身份证,但我想有更好的办法


那么,正如标题所说,有没有简单的方法可以将onload元素作为onload元素的目标?请注意,当页面中有多个具有
onload
属性的元素时,这种解决方案必须起作用。

不幸的是,onload属性将只加载到
body
iframe
元素上,而不会加载到任意元素上

您必须使用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.
}
//获取具有“onload”属性的元素列表
var list=document.queryselectoral(“[onload]”);
//循环遍历这些元素
对于(变量i=0;i
我建议您将“this”发送到一个函数,然后该函数将对元素执行您想要的操作

function change(e){ e.style.color = 'blue'; }

<p onload="change(this);">Boy, I sure do wish I was blue</p>
函数更改(e){e.style.color='blue';}
孩子,我真希望我是蓝色的


虽然不是完美的答案或解决方案,但对我来说效果很好。请注意,我不知道这是否适用于所有浏览器。

onload
仅适用于
body
标记。但您可以使用更多的代码使其工作。